diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2d5913c06..863e6748c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -48,6 +48,7 @@ message(STATUS "GMMXX_INCLUDE_DIR is ${GMMXX_INCLUDE_DIR}")
option(DEBUG "Sets whether the DEBUG mode is used" ON)
option(USE_POPCNT "Sets whether the popcnt instruction is going to be used." ON)
option(USE_BOOST_STATIC_LIBRARIES "Sets whether the Boost libraries should be linked statically." ON)
+option(USE_INTELTBB "Sets whether the Intel TBB Extensions should be used." OFF)
# If the DEBUG option was turned on, we will target a debug version and a release version otherwise
if (DEBUG)
@@ -133,6 +134,19 @@ source_group(test FILES ${STORM_TEST_FILES})
include_directories("${PROJECT_SOURCE_DIR}")
include_directories("${PROJECT_SOURCE_DIR}/src")
+# Preset pathes for Intel TBB to internal copy in /resources/3rdParty/tbb41_20130314_mergedWindowsLinuxMacOSX
+set(TBB_INSTALL_DIR "${PROJECT_SOURCE_DIR}/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/")
+if(MSVC)
+ set(ENV{TBB_ARCH_PLATFORM} "intel64/vc11")
+elseif(CMAKE_COMPILER_IS_GNUCC)
+ set(ENV{TBB_ARCH_PLATFORM} "intel64/gcc4.4")
+else(CLANG)
+ set(ENV{TBB_ARCH_PLATFORM} "intel64/clang3.2")
+endif()
+
+# Add the resources/cmake folder to Module Search Path for FindTBB.cmake
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/resources/cmake/")
+
# Set required external packages
find_package(Threads REQUIRED)
find_package(Doxygen REQUIRED)
@@ -140,6 +154,7 @@ set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF)
find_package(Boost REQUIRED COMPONENTS program_options)
+find_package(TBB)
if(Boost_FOUND)
if ((NOT Boost_LIBRARY_DIRS) OR ("${Boost_LIBRARY_DIRS}" STREQUAL ""))
@@ -153,6 +168,18 @@ if(Boost_FOUND)
link_directories(${Boost_LIBRARY_DIRS})
endif(Boost_FOUND)
+# Intels Thread Building Blocks
+if (TBB_FOUND)
+ message(STATUS "Found TBB with Interface Version ${TBB_INTERFACE_VERSION}")
+
+ if(USE_INTELTBB)
+ add_definitions(-DGMM_USE_TBB)
+ endif()
+
+ include_directories(${TBB_INCLUDE_DIRS})
+ link_directories(${TBB_LIBRARY_DIRS})
+endif(TBB_FOUND)
+
# Add Eigen to the included directories
include_directories(${EIGEN3_INCLUDE_DIR})
@@ -168,6 +195,11 @@ add_executable(storm-tests ${STORM_TEST_FILES} ${STORM_SOURCES_WITHOUT_MAIN} ${S
target_link_libraries(storm ${Boost_LIBRARIES})
target_link_libraries(storm-tests ${Boost_LIBRARIES})
+if (USE_INTELTBB)
+ target_link_libraries(storm tbb tbbmalloc)
+ target_link_libraries(storm-tests tbb tbbmalloc)
+endif(USE_INTELTBB)
+
set (STORM_USE_COTIRE ON)
if (APPLE)
set(STORM_USE_COTIRE OFF)
diff --git a/resources/3rdparty/gmm-4.2/include/gmm/gmm_blas.h b/resources/3rdparty/gmm-4.2/include/gmm/gmm_blas.h
index 558784b9f..249ae5efb 100644
--- a/resources/3rdparty/gmm-4.2/include/gmm/gmm_blas.h
+++ b/resources/3rdparty/gmm-4.2/include/gmm/gmm_blas.h
@@ -38,6 +38,13 @@
#ifndef GMM_BLAS_H__
#define GMM_BLAS_H__
+#ifdef GMM_USE_TBB
+# include // This fixes a potential dependency ordering problem between GMM and TBB
+# include "tbb/tbb.h"
+# include
+#endif
+
+
#include "gmm_scaled.h"
#include "gmm_transposed.h"
#include "gmm_conjugated.h"
@@ -394,13 +401,77 @@ namespace gmm {
return res;
}
+#ifdef GMM_USE_TBB
+ /* Official Intel Hint on blocked_range vs. linear iterators: http://software.intel.com/en-us/forums/topic/289505
+
+ */
+ template
+class forward_range {
+ IT1 my_begin;
+ IT1 my_end;
+ size_t my_size;
+public:
+ IT1 begin() const {return my_begin;}
+ IT1 end() const {return my_end;}
+ bool empty() const {return my_begin==my_end;}
+ bool is_divisible() const {return my_size>1;}
+ forward_range( IT1 first, IT1 last, size_t size ) : my_begin(first), my_end(last), my_size(size) {
+ assert( size==size_t(std::distance( first,last )));
+ }
+ forward_range( IT1 first, IT1 last) : my_begin(first), my_end(last) {
+ my_size = std::distance( first,last );
+ }
+ forward_range( forward_range& r, tbb::split ) {
+ size_t h = r.my_size/2;
+ my_end = r.my_end;
+ my_begin = r.my_begin;
+ std::advance( my_begin, h ); // Might be scaling issue
+ my_size = r.my_size-h;
+ r.my_end = my_begin;
+ r.my_size = h;
+ }
+};
+
+ template
+ class tbbHelper_vect_sp_sparse {
+ V const* my_v;
+ public:
+ typename strongest_numeric_type::value_type,
+ typename linalg_traits::value_type>::T my_sum;
+ void operator()( const forward_range& r ) {
+ V const* v = my_v;
+ typename strongest_numeric_type::value_type,
+ typename linalg_traits::value_type>::T sum = my_sum;
+ IT1 end = r.end();
+ for( IT1 i=r.begin(); i!=end; ++i) {
+ sum += (*i) * v->at(i.index());
+ }
+ my_sum = sum;
+ }
+
+ tbbHelper_vect_sp_sparse( tbbHelper_vect_sp_sparse& x, tbb::split ) : my_v(x.my_v), my_sum(0) {}
+
+ void join( const tbbHelper_vect_sp_sparse& y ) {my_sum+=y.my_sum;}
+
+ tbbHelper_vect_sp_sparse(V const* v) :
+ my_v(v), my_sum(0)
+ {}
+ };
+#endif
+
template inline
typename strongest_numeric_type::value_type,
typename linalg_traits::value_type>::T
vect_sp_sparse_(IT1 it, IT1 ite, const V &v) {
typename strongest_numeric_type::value_type,
typename linalg_traits::value_type>::T res(0);
+#if defined(GMM_USE_TBB) && defined(GMM_USE_TBB_FOR_INNER)
+ tbbHelper_vect_sp_sparse tbbHelper(&v);
+ tbb::parallel_reduce(forward_range(it, ite), tbbHelper);
+ res = tbbHelper.my_sum;
+#else
for (; it != ite; ++it) res += (*it) * v[it.index()];
+#endif
return res;
}
@@ -1678,15 +1749,85 @@ namespace gmm {
}
}
+#ifdef GMM_USE_TBB
+ /* Official Intel Hint on blocked_range vs. linear iterators: http://software.intel.com/en-us/forums/topic/289505
+
+ */
+ template
+class forward_range_mult {
+ IT1 my_begin;
+ IT1 my_end;
+ IT2 my_begin_row;
+ size_t my_size;
+public:
+ IT1 begin() const {return my_begin;}
+ IT2 begin_row() const {return my_begin_row;}
+ IT1 end() const {return my_end;}
+ bool empty() const {return my_begin==my_end;}
+ bool is_divisible() const {return my_size>1;}
+ forward_range_mult( IT1 first, IT1 last, IT2 row_first, size_t size ) : my_begin(first), my_end(last), my_begin_row(row_first), my_size(size) {
+ assert( size==size_t(std::distance( first,last )));
+ }
+ forward_range_mult( IT1 first, IT1 last, IT2 row_first) : my_begin(first), my_end(last), my_begin_row(row_first) {
+ my_size = std::distance( first,last );
+ }
+ forward_range_mult( forward_range_mult& r, tbb::split ) {
+ size_t h = r.my_size/2;
+ my_end = r.my_end;
+ my_begin = r.my_begin;
+ my_begin_row = r.my_begin_row;
+ std::advance( my_begin, h ); // Might be scaling issue
+ std::advance( my_begin_row, h );
+ my_size = r.my_size-h;
+ r.my_end = my_begin;
+ r.my_size = h;
+ }
+};
+
+
+ template
+ class tbbHelper_mult_by_row {
+ L2 const* my_l2;
+
+ // Typedefs for Iterator Types
+ typedef typename linalg_traits::iterator frm_IT1;
+ typedef typename linalg_traits::const_row_iterator frm_IT2;
+
+ public:
+ void operator()( const forward_range_mult& r ) const {
+ L2 const& l2 = *my_l2;
+
+ frm_IT1 it = r.begin();
+ frm_IT1 ite = r.end();
+ frm_IT2 itr = r.begin_row();
+
+ for (; it != ite; ++it, ++itr) {
+ *it = vect_sp(linalg_traits::row(itr), l2,
+ typename linalg_traits::storage_type(),
+ typename linalg_traits::storage_type());
+ }
+ }
+
+ tbbHelper_mult_by_row(L2 const* l2) :
+ my_l2(l2)
+ {}
+ };
+#endif
+
+
template
void mult_by_row(const L1& l1, const L2& l2, L3& l3, abstract_dense) {
typename linalg_traits::iterator it=vect_begin(l3), ite=vect_end(l3);
typename linalg_traits::const_row_iterator
itr = mat_row_const_begin(l1);
- for (; it != ite; ++it, ++itr)
+#ifdef GMM_USE_TBB
+ tbb::parallel_for(forward_range_mult::iterator, typename linalg_traits::const_row_iterator>(it, ite, itr), tbbHelper_mult_by_row(&l2));
+#else
+ for (; it != ite; ++it, ++itr)
*it = vect_sp(linalg_traits::row(itr), l2,
typename linalg_traits::storage_type(),
typename linalg_traits::storage_type());
+#endif
}
template
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/CHANGES b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/CHANGES
new file mode 100644
index 000000000..261a8a0e2
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/CHANGES
@@ -0,0 +1,1430 @@
+------------------------------------------------------------------------
+The list of most significant changes made over time in
+Intel(R) Threading Bulding Blocks (Intel(R) TBB).
+------------------------------------------------------------------------
+
+Intel TBB 4.1 Update 3
+TBB_INTERFACE_VERSION == 6103
+
+Changes (w.r.t. Intel TBB 4.1 Update 2):
+
+- Binary files for Android* applications were added to the Linux* OS
+ package.
+- Binary files for Windows Store* applications were added to the
+ Windows* OS package.
+- Exact exception propagation (exception_ptr) support on Linux OS is
+ now turned on by default for GCC 4.4 and higher.
+- Stopped implicit use of large memory pages by tbbmalloc (Linux-only).
+ Now use of large pages must be explicitly enabled with
+ scalable_allocation_mode() function or TBB_MALLOC_USE_HUGE_PAGES
+ environment variable.
+
+Community Preview Features:
+
+- Extended class task_arena constructor and method initialize() to
+ allow some concurrency to be reserved strictly for application
+ threads.
+- New methods terminate() and is_active() were added to class
+ task_arena.
+
+Bugs fixed:
+
+- Fixed initialization of hashing helper constant in the hash
+ containers.
+- Fixed possible stalls in concurrent invocations of
+ task_arena::execute() when no worker thread is available to make
+ progress.
+
+Open-source contributions integrated:
+
+- The fix for the GUI examples on OS X* systems by Raf Schietekat.
+- Moved some power-of-2 calculations to functions to improve readability
+ by Raf Schietekat.
+- C++11/Clang support improvements by arcata.
+- ARM* platform isolation layer by Steve Capper, Leif Lindholm, Leo Lara
+ (ARM).
+
+------------------------------------------------------------------------
+Intel TBB 4.1 Update 2
+TBB_INTERFACE_VERSION == 6102
+
+Changes (w.r.t. Intel TBB 4.1 Update 1):
+
+- Objects up to 128 MB are now cached by the tbbmalloc. Previously
+ the threshold was 8MB. Objects larger than 128 MB are still
+ processed by direct OS calls.
+- concurrent_unordered_multiset and concurrent_unordered_multimap
+ have been added, based on Microsoft* PPL prototype.
+- Ability to value-initialize a tbb::atomic variable on construction
+ in C++11, with const expressions properly supported.
+
+Community Preview Features:
+
+- Added a possibility to wait until all worker threads terminate.
+ This is necessary before calling fork() from an application.
+
+Bugs fixed:
+
+- Fixed data race in tbbmalloc that might lead to memory leaks
+ for large object allocations.
+- Fixed task_arena::enqueue() to use task_group_context of target arena.
+- Improved implementation of 64 bit atomics on ia32.
+
+------------------------------------------------------------------------
+Intel TBB 4.1 Update 1
+TBB_INTERFACE_VERSION == 6101
+
+Changes (w.r.t. Intel TBB 4.1):
+
+- concurrent_vector class now supports initialization/assignment
+ via C++11 initializer list feature (std::initializer_list)
+- Added implementation of the platform isolation layer based on
+ Intel compiler atomic built-ins; it is supposed to work on
+ any platform supported by compiler version 12.1 and newer.
+- Using GetNativeSystemInfo() instead of GetSystemInfo() to support
+ more than 32 processors for 32-bit applications under WOW64.
+- The following form of parallel_for:
+ parallel_for(first, last, [step,] f[, context]) now accepts an
+ optional partitioner parameter after the function f.
+
+Backward-incompatible API changes:
+
+- The library no longer injects tuple in to namespace std.
+ In previous releases, tuple was injected into namespace std by
+ flow_graph.h when std::tuple was not available. In this release,
+ flow_graph.h now uses tbb::flow::tuple. On platforms where
+ std::tuple is available, tbb::flow::tuple is typedef'ed to
+ std::tuple. On all other platforms, tbb::flow::tuple provides
+ a subset of the functionality defined by std::tuple. Users of
+ flow_graph.h may need to change their uses of std::tuple to
+ tbb::flow::tuple to ensure compatibility with non-C++11 compliant
+ compilers.
+
+Bugs fixed:
+
+- Fixed local observer to be able to override propagated CPU state and
+ to provide correct value of task_arena::current_slot() in callbacks.
+
+------------------------------------------------------------------------
+Intel TBB 4.1
+TBB_INTERFACE_VERSION == 6100
+
+Changes (w.r.t. Intel TBB 4.0 Update 5):
+
+- _WIN32_WINNT must be set to 0x0501 or greater in order to use TBB
+ on Microsoft* Windows*.
+- parallel_deterministic_reduce template function is fully supported.
+- TBB headers can be used with C++0x/C++11 mode (-std=c++0x) of GCC
+ and Intel(R) Compiler.
+- C++11 std::make_exception_ptr is used where available, instead of
+ std::copy_exception from earlier C++0x implementations.
+- Improvements in the TBB allocator to reduce extra memory consumption.
+- Partial refactoring of the task scheduler data structures.
+- TBB examples allow more flexible specification of the thread number,
+ including arithmetic and geometric progression.
+
+Bugs fixed:
+
+- On Linux & OS X*, pre-built TBB binaries do not yet support exact
+ exception propagation via C++11 exception_ptr. To prevent run time
+ errors, by default TBB headers disable exact exception propagation
+ even if the C++ implementation provides exception_ptr.
+
+Community Preview Features:
+
+- Added: class task_arena, for work submission by multiple application
+ threads with thread-independent control of concurrency level.
+- Added: task_scheduler_observer can be created as local to a master
+ thread, to observe threads that work on behalf of that master.
+ Local observers may have new on_scheduler_leaving() callback.
+
+------------------------------------------------------------------------
+Intel TBB 4.0 Update 5
+TBB_INTERFACE_VERSION == 6005
+
+Changes (w.r.t. Intel TBB 4.0 Update 4):
+
+- Parallel pipeline optimization (directly storing small objects in the
+ interstage data buffers) limited to trivially-copyable types for
+ C++11 and a short list of types for earlier compilers.
+- _VARIADIC_MAX switch is honored for TBB tuple implementation
+ and flow::graph nodes based on tuple.
+- Support of Cocoa framework was added to the GUI examples on OS X*
+ systems.
+
+Bugs fixed:
+
+- Fixed a tv_nsec overflow bug in condition_variable::wait_for.
+- Fixed execution order of enqueued tasks with different priorities.
+- Fixed a bug with task priority changes causing lack of progress
+ for fire-and-forget tasks when TBB was initialized to use 1 thread.
+- Fixed duplicate symbol problem when linking multiple compilation
+ units that include flow_graph.h on VC 10.
+
+------------------------------------------------------------------------
+Intel TBB 4.0 Update 4
+TBB_INTERFACE_VERSION == 6004
+
+Changes (w.r.t. Intel TBB 4.0 Update 3):
+
+- The TBB memory allocator transparently supports large pages on Linux.
+- A new flow_graph example, logic_sim, was added.
+- Support for DirectX* 9 was added to GUI examples.
+
+Community Preview Features:
+
+- Added: aggregator, a new concurrency control mechanism.
+
+Bugs fixed:
+
+- The abort operation on concurrent_bounded_queue now leaves the queue
+ in a reusable state. If a bad_alloc or bad_last_alloc exception is
+ thrown while the queue is recovering from an abort, that exception
+ will be reported instead of user_abort on the thread on which it
+ occurred, and the queue will not be reusable.
+- Steal limiting heuristic fixed to avoid premature stealing disabling
+ when large amount of __thread data is allocated on thread stack.
+- Fixed a low-probability leak of arenas in the task scheduler.
+- In STL-compatible allocator classes, the method construct() was fixed
+ to comply with C++11 requirements.
+- Fixed a bug that prevented creation of fixed-size memory pools
+ smaller than 2M.
+- Significantly reduced the amount of warnings from various compilers.
+
+Open-source contributions integrated:
+
+- Multiple improvements by Raf Schietekat.
+- Basic support for Clang on OS X* by Blas Rodriguez Somoza.
+- Fixes for warnings and corner-case bugs by Blas Rodriguez Somoza
+ and Edward Lam.
+
+------------------------------------------------------------------------
+Intel TBB 4.0 Update 3
+TBB_INTERFACE_VERSION == 6003
+
+Changes (w.r.t. Intel TBB 4.0 Update 2):
+
+- Modifications to the low-level API for memory pools:
+ added support for aligned allocations;
+ pool policies reworked to allow backward-compatible extensions;
+ added a policy to not return memory space till destruction;
+ pool_reset() does not return memory space anymore.
+- Class tbb::flow::graph_iterator added to iterate over all nodes
+ registered with a graph instance.
+- multioutput_function_node has been renamed multifunction_node.
+ multifunction_node and split_node are now fully-supported features.
+- For the tagged join node, the policy for try_put of an item with
+ already existing tag has been defined: the item will be rejected.
+- Matching the behavior on Windows, on other platforms the optional
+ shared libraries (libtbbmalloc, libirml) now are also searched
+ only in the directory where libtbb is located.
+- The platform isolation layer based on GCC built-ins is extended.
+
+Backward-incompatible API changes:
+
+- a graph reference parameter is now required to be passed to the
+ constructors of the following flow graph nodes: overwrite_node,
+ write_once_node, broadcast_node, and the CPF or_node.
+- the following tbb::flow node methods and typedefs have been renamed:
+ Old New
+ join_node and or_node:
+ inputs() -> input_ports()
+ input_ports_tuple_type -> input_ports_type
+ multifunction_node and split_node:
+ ports_type -> output_ports_type
+
+Bugs fixed:
+
+- Not all logical processors were utilized on systems with more than
+ 64 cores split by Windows into several processor groups.
+
+------------------------------------------------------------------------
+Intel TBB 4.0 Update 2 commercial-aligned release
+TBB_INTERFACE_VERSION == 6002
+
+Changes (w.r.t. Intel TBB 4.0 Update 1 commercial-aligned release):
+
+- concurrent_bounded_queue now has an abort() operation that releases
+ threads involved in pending push or pop operations. The released
+ threads will receive a tbb::user_abort exception.
+- Added Community Preview Feature: concurrent_lru_cache container,
+ a concurrent implementation of LRU (least-recently-used) cache.
+
+Bugs fixed:
+
+- fixed a race condition in the TBB scalable allocator.
+- concurrent_queue counter wraparound bug was fixed, which occurred when
+ the number of push and pop operations exceeded ~>4 billion on IA32.
+- fixed races in the TBB scheduler that could put workers asleep too
+ early, especially in presense of affinitized tasks.
+
+------------------------------------------------------------------------
+Intel TBB 4.0 Update 1 commercial-aligned release
+TBB_INTERFACE_VERSION == 6000 (forgotten to increment)
+
+Changes (w.r.t. Intel TBB 4.0 commercial-aligned release):
+
+- Memory leaks fixed in binpack example.
+- Improvements and fixes in the TBB allocator.
+
+------------------------------------------------------------------------
+Intel TBB 4.0 commercial-aligned release
+TBB_INTERFACE_VERSION == 6000
+
+Changes (w.r.t. Intel TBB 3.0 Update 8 commercial-aligned release):
+
+- concurrent_priority_queue is now a fully supported feature.
+ Capacity control methods were removed.
+- Flow graph is now a fully supported feature.
+- A new memory backend has been implemented in the TBB allocator.
+ It can reuse freed memory for both small and large objects, and
+ returns unused memory blocks to the OS more actively.
+- Improved partitioning algorithms for parallel_for and parallel_reduce
+ to better handle load imbalance.
+- The convex_hull example has been refactored for reproducible
+ performance results.
+- The major interface version has changed from 5 to 6.
+ Deprecated interfaces might be removed in future releases.
+
+Community Preview Features:
+
+- Added: serial subset, i.e. sequential implementations of TBB generic
+ algorithms (currently, only provided for parallel_for).
+- Preview of new flow graph nodes:
+ or_node (accepts multiple inputs, forwards each input separately
+ to all successors),
+ split_node (accepts tuples, and forwards each element of a tuple
+ to a corresponding successor), and
+ multioutput_function_node (accepts one input, and passes the input
+ and a tuple of output ports to the function body to support outputs
+ to multiple successors).
+- Added: memory pools for more control on memory source, grouping,
+ and collective deallocation.
+
+------------------------------------------------------------------------
+Intel TBB 3.0 Update 8 commercial-aligned release
+TBB_INTERFACE_VERSION == 5008
+
+Changes (w.r.t. Intel TBB 3.0 Update 7 commercial-aligned release):
+
+- Task priorities become an official feature of TBB,
+ not community preview as before.
+- Atomics API extended, and implementation refactored.
+- Added task::set_parent() method.
+- Added concurrent_unordered_set container.
+
+Open-source contributions integrated:
+
+- PowerPC support by Raf Schietekat.
+- Fix of potential task pool overrun and other improvements
+ in the task scheduler by Raf Schietekat.
+- Fix in parallel_for_each to work with std::set in Visual* C++ 2010.
+
+Community Preview Features:
+
+- Graph community preview feature was renamed to flow graph.
+ Multiple improvements in the implementation.
+ Binpack example was added for the feature.
+- A number of improvements to concurrent_priority_queue.
+ Shortpath example was added for the feature.
+- TBB runtime loaded functionality was added (Windows*-only).
+ It allows to specify which versions of TBB should be used,
+ as well as to set directories for the library search.
+- parallel_deterministic_reduce template function was added.
+
+------------------------------------------------------------------------
+Intel TBB 3.0 Update 7 commercial-aligned release
+TBB_INTERFACE_VERSION == 5006 (forgotten to increment)
+
+Changes (w.r.t. Intel TBB 3.0 Update 6 commercial-aligned release):
+
+- Added implementation of the platform isolation layer based on
+ GCC atomic built-ins; it is supposed to work on any platform
+ where GCC has these built-ins.
+
+Community Preview Features:
+
+- Graph's dining_philosophers example added.
+- A number of improvements to graph and concurrent_priority_queue.
+
+
+------------------------------------------------------------------------
+Intel TBB 3.0 Update 6 commercial-aligned release
+TBB_INTERFACE_VERSION == 5006
+
+Changes (w.r.t. Intel TBB 3.0 Update 5 commercial-aligned release):
+
+- Added Community Preview feature: task and task group priority, and
+ Fractal example demonstrating it.
+- parallel_pipeline optimized for data items of small and large sizes.
+- Graph's join_node is now parametrized with a tuple of up to 10 types.
+- Improved performance of concurrent_priority_queue.
+
+Open-source contributions integrated:
+
+- Initial NetBSD support by Aleksej Saushev.
+
+Bugs fixed:
+
+- Failure to enable interoperability with Intel(R) Cilk(tm) Plus runtime
+ library, and a crash caused by invoking the interoperability layer
+ after one of the libraries was unloaded.
+- Data race that could result in concurrent_unordered_map structure
+ corruption after call to clear() method.
+- Stack corruption caused by PIC version of 64-bit CAS compiled by Intel
+ compiler on Linux.
+- Inconsistency of exception propagation mode possible when application
+ built with Microsoft* Visual Studio* 2008 or earlier uses TBB built
+ with Microsoft* Visual Studio* 2010.
+- Affinitizing master thread to a subset of available CPUs after TBB
+ scheduler was initialized tied all worker threads to the same CPUs.
+- Method is_stolen_task() always returned 'false' for affinitized tasks.
+- write_once_node and overwrite_node did not immediately send buffered
+ items to successors
+
+------------------------------------------------------------------------
+Intel TBB 3.0 Update 5 commercial-aligned release
+TBB_INTERFACE_VERSION == 5005
+
+Changes (w.r.t. Intel TBB 3.0 Update 4 commercial-aligned release):
+
+- Added Community Preview feature: graph.
+- Added automatic propagation of master thread FPU settings to
+ TBB worker threads.
+- Added a public function to perform a sequentially consistent full
+ memory fence: tbb::atomic_fence() in tbb/atomic.h.
+
+Bugs fixed:
+
+- Data race that could result in scheduler data structures corruption
+ when using fire-and-forget tasks.
+- Potential referencing of destroyed concurrent_hash_map element after
+ using erase(accessor&A) method with A acquired as const_accessor.
+- Fixed a correctness bug in the convex hull example.
+
+Open-source contributions integrated:
+
+- Patch for calls to internal::atomic_do_once() by Andrey Semashev.
+
+------------------------------------------------------------------------
+Intel TBB 3.0 Update 4 commercial-aligned release
+TBB_INTERFACE_VERSION == 5004
+
+Changes (w.r.t. Intel TBB 3.0 Update 3 commercial-aligned release):
+
+- Added Community Preview feature: concurrent_priority_queue.
+- Fixed library loading to avoid possibility for remote code execution,
+ see http://www.microsoft.com/technet/security/advisory/2269637.mspx.
+- Added support of more than 64 cores for appropriate Microsoft*
+ Windows* versions. For more details, see
+ http://msdn.microsoft.com/en-us/library/dd405503.aspx.
+- Default number of worker threads is adjusted in accordance with
+ process affinity mask.
+
+Bugs fixed:
+
+- Calls of scalable_* functions from inside the allocator library
+ caused issues if the functions were overridden by another module.
+- A crash occurred if methods run() and wait() were called concurrently
+ for an empty tbb::task_group (1736).
+- The tachyon example exhibited build problems associated with
+ bug 554339 on Microsoft* Visual Studio* 2010. Project files were
+ modified as a partial workaround to overcome the problem. See
+ http://connect.microsoft.com/VisualStudio/feedback/details/554339.
+
+------------------------------------------------------------------------
+Intel TBB 3.0 Update 3 commercial-aligned release
+TBB_INTERFACE_VERSION == 5003
+
+Changes (w.r.t. Intel TBB 3.0 Update 2 commercial-aligned release):
+
+- cache_aligned_allocator class reworked to use scalable_aligned_malloc.
+- Improved performance of count() and equal_range() methods
+ in concurrent_unordered_map.
+- Improved implementation of 64-bit atomic loads and stores on 32-bit
+ platforms, including compilation with VC 7.1.
+- Added implementation of atomic operations on top of OSAtomic API
+ provided by OS X*.
+- Removed gratuitous try/catch blocks surrounding thread function calls
+ in tbb_thread.
+- Xcode* projects were added for sudoku and game_of_life examples.
+- Xcode* projects were updated to work without TBB framework.
+
+Bugs fixed:
+
+- Fixed a data race in task scheduler destruction that on rare occasion
+ could result in memory corruption.
+- Fixed idle spinning in thread bound filters in tbb::pipeline (1670).
+
+Open-source contributions integrated:
+
+- MinGW-64 basic support by brsomoza (partially).
+- Patch for atomic.h by Andrey Semashev.
+- Support for AIX & GCC on PowerPC by Giannis Papadopoulos.
+- Various improvements by Raf Schietekat.
+
+------------------------------------------------------------------------
+Intel TBB 3.0 Update 2 commercial-aligned release
+TBB_INTERFACE_VERSION == 5002
+
+Changes (w.r.t. Intel TBB 3.0 Update 1 commercial-aligned release):
+
+- Destructor of tbb::task_group class throws missing_wait exception
+ if there are tasks running when it is invoked.
+- Interoperability layer with Intel Cilk Plus runtime library added
+ to protect TBB TLS in case of nested usage with Intel Cilk Plus.
+- Compilation fix for dependent template names in concurrent_queue.
+- Memory allocator code refactored to ease development and maintenance.
+
+Bugs fixed:
+
+- Improved interoperability with other Intel software tools on Linux in
+ case of dynamic replacement of memory allocator (1700)
+- Fixed install issues that prevented installation on
+ Mac OS* X 10.6.4 (1711).
+
+------------------------------------------------------------------------
+Intel TBB 3.0 Update 1 commercial-aligned release
+TBB_INTERFACE_VERSION == 5000 (forgotten to increment)
+
+Changes (w.r.t. Intel TBB 3.0 commercial-aligned release):
+
+- Decreased memory fragmentation by allocations bigger than 8K.
+- Lazily allocate worker threads, to avoid creating unnecessary stacks.
+
+Bugs fixed:
+
+- TBB allocator used much more memory than malloc (1703) - see above.
+- Deadlocks happened in some specific initialization scenarios
+ of the TBB allocator (1701, 1704).
+- Regression in enumerable_thread_specific: excessive requirements
+ for object constructors.
+- A bug in construction of parallel_pipeline filters when body instance
+ was a temporary object.
+- Incorrect usage of memory fences on PowerPC and XBOX360 platforms.
+- A subtle issue in task group context binding that could result
+ in cancelation signal being missed by nested task groups.
+- Incorrect construction of concurrent_unordered_map if specified
+ number of buckets is not power of two.
+- Broken count() and equal_range() of concurrent_unordered_map.
+- Return type of postfix form of operator++ for hash map's iterators.
+
+------------------------------------------------------------------------
+Intel TBB 3.0 commercial-aligned release
+TBB_INTERFACE_VERSION == 5000
+
+Changes (w.r.t. Intel TBB 2.2 Update 3 commercial-aligned release):
+
+- All open-source-release changes down to TBB 2.2 U3 below
+ were incorporated into this release.
+
+------------------------------------------------------------------------
+20100406 open-source release
+
+Changes (w.r.t. 20100310 open-source release):
+
+- Added support for Microsoft* Visual Studio* 2010, including binaries.
+- Added a PDF file with recommended Design Patterns for TBB.
+- Added parallel_pipeline function and companion classes and functions
+ that provide a strongly typed lambda-friendly pipeline interface.
+- Reworked enumerable_thread_specific to use a custom implementation of
+ hash map that is more efficient for ETS usage models.
+- Added example for class task_group; see examples/task_group/sudoku.
+- Removed two examples, as they were long outdated and superceded:
+ pipeline/text_filter (use pipeline/square);
+ parallel_while/parallel_preorder (use parallel_do/parallel_preorder).
+- PDF documentation updated.
+- Other fixes and changes in code, tests, and examples.
+
+Bugs fixed:
+
+- Eliminated build errors with MinGW32.
+- Fixed post-build step and other issues in VS projects for examples.
+- Fixed discrepancy between scalable_realloc and scalable_msize that
+ caused crashes with malloc replacement on Windows.
+
+------------------------------------------------------------------------
+20100310 open-source release
+
+Changes (w.r.t. Intel TBB 2.2 Update 3 commercial-aligned release):
+
+- Version macros changed in anticipation of a future release.
+- Directory structure aligned with Intel(R) C++ Compiler;
+ now TBB binaries reside in //[bin|lib]
+ (in TBB 2.x, it was [bin|lib]//).
+- Visual Studio projects changed for examples: instead of separate set
+ of files for each VS version, now there is single 'msvs' directory
+ that contains workspaces for MS C++ compiler (_cl.sln) and
+ Intel C++ compiler (_icl.sln). Works with VS 2005 and above.
+- The name versioning scheme for backward compatibility was improved;
+ now compatibility-breaking changes are done in a separate namespace.
+- Added concurrent_unordered_map implementation based on a prototype
+ developed in Microsoft for a future version of PPL.
+- Added PPL-compatible writer-preference RW lock (reader_writer_lock).
+- Added TBB_IMPLEMENT_CPP0X macro to control injection of C++0x names
+ implemented in TBB into namespace std.
+- Added almost-C++0x-compatible std::condition_variable, plus a bunch
+ of other C++0x classes required by condition_variable.
+- With TBB_IMPLEMENT_CPP0X, tbb_thread can be also used as std::thread.
+- task.cpp was split into several translation units to structure
+ TBB scheduler sources layout. Static data layout and library
+ initialization logic were also updated.
+- TBB scheduler reworked to prevent master threads from stealing
+ work belonging to other masters.
+- Class task was extended with enqueue() method, and slightly changed
+ semantics of methods spawn() and destroy(). For exact semantics,
+ refer to TBB Reference manual.
+- task_group_context now allows for destruction by non-owner threads.
+- Added TBB_USE_EXCEPTIONS macro to control use of exceptions in TBB
+ headers. It turns off (i.e. sets to 0) automatically if specified
+ compiler options disable exception handling.
+- TBB is enabled to run on top of Microsoft's Concurrency Runtime
+ on Windows* 7 (via our worker dispatcher known as RML).
+- Removed old unused busy-waiting code in concurrent_queue.
+- Described the advanced build & test options in src/index.html.
+- Warning level for GCC raised with -Wextra and a few other options.
+- Multiple fixes and improvements in code, tests, examples, and docs.
+
+Open-source contributions integrated:
+
+- Xbox support by Roman Lut (Deep Shadows), though further changes are
+ required to make it working; e.g. post-2.1 entry points are missing.
+- "Eventcount" by Dmitry Vyukov evolved into concurrent_monitor,
+ an internal class used in the implementation of concurrent_queue.
+
+------------------------------------------------------------------------
+Intel TBB 2.2 Update 3 commercial-aligned release
+TBB_INTERFACE_VERSION == 4003
+
+Changes (w.r.t. Intel TBB 2.2 Update 2 commercial-aligned release):
+
+- PDF documentation updated.
+
+Bugs fixed:
+
+- concurrent_hash_map compatibility issue exposed on Linux in case
+ two versions of the container were used by different modules.
+- enforce 16 byte stack alignment for consistence with GCC; required
+ to work correctly with 128-bit variables processed by SSE.
+- construct() methods of allocator classes now use global operator new.
+
+------------------------------------------------------------------------
+Intel TBB 2.2 Update 2 commercial-aligned release
+TBB_INTERFACE_VERSION == 4002
+
+Changes (w.r.t. Intel TBB 2.2 Update 1 commercial-aligned release):
+
+- parallel_invoke and parallel_for_each now take function objects
+ by const reference, not by value.
+- Building TBB with /MT is supported, to avoid dependency on particular
+ versions of Visual C++* runtime DLLs. TBB DLLs built with /MT
+ are located in vc_mt directory.
+- Class critical_section introduced.
+- Improvements in exception support: new exception classes introduced,
+ all exceptions are thrown via an out-of-line internal method.
+- Improvements and fixes in the TBB allocator and malloc replacement,
+ including robust memory identification, and more reliable dynamic
+ function substitution on Windows*.
+- Method swap() added to class tbb_thread.
+- Methods rehash() and bucket_count() added to concurrent_hash_map.
+- Added support for Visual Studio* 2010 Beta2. No special binaries
+ provided, but CRT-independent DLLs (vc_mt) should work.
+- Other fixes and improvements in code, tests, examples, and docs.
+
+Open-source contributions integrated:
+
+- The fix to build 32-bit TBB on Mac OS* X 10.6.
+- GCC-based port for SPARC Solaris by Michailo Matijkiw, with use of
+ earlier work by Raf Schietekat.
+
+Bugs fixed:
+
+- 159 - TBB build for PowerPC* running Mac OS* X.
+- 160 - IBM* Java segfault if used with TBB allocator.
+- crash in concurrent_queue (1616).
+
+------------------------------------------------------------------------
+Intel TBB 2.2 Update 1 commercial-aligned release
+TBB_INTERFACE_VERSION == 4001
+
+Changes (w.r.t. Intel TBB 2.2 commercial-aligned release):
+
+- Incorporates all changes from open-source releases below.
+- Documentation was updated.
+- TBB scheduler auto-initialization now covers all possible use cases.
+- concurrent_queue: made argument types of sizeof used in paddings
+ consistent with those actually used.
+- Memory allocator was improved: supported corner case of user's malloc
+ calling scalable_malloc (non-Windows), corrected processing of
+ memory allocation requests during tbb memory allocator startup
+ (Linux).
+- Windows malloc replacement has got better support for static objects.
+- In pipeline setups that do not allow actual parallelism, execution
+ by a single thread is guaranteed, idle spinning eliminated, and
+ performance improved.
+- RML refactoring and clean-up.
+- New constructor for concurrent_hash_map allows reserving space for
+ a number of items.
+- Operator delete() added to the TBB exception classes.
+- Lambda support was improved in parallel_reduce.
+- gcc 4.3 warnings were fixed for concurrent_queue.
+- Fixed possible initialization deadlock in modules using TBB entities
+ during construction of global static objects.
+- Copy constructor in concurrent_hash_map was fixed.
+- Fixed a couple of rare crashes in the scheduler possible before
+ in very specific use cases.
+- Fixed a rare crash in the TBB allocator running out of memory.
+- New tests were implemented, including test_lambda.cpp that checks
+ support for lambda expressions.
+- A few other small changes in code, tests, and documentation.
+
+------------------------------------------------------------------------
+20090809 open-source release
+
+Changes (w.r.t. Intel TBB 2.2 commercial-aligned release):
+
+- Fixed known exception safety issues in concurrent_vector.
+- Better concurrency of simultaneous grow requests in concurrent_vector.
+- TBB allocator further improves performance of large object allocation.
+- Problem with source of text relocations was fixed on Linux
+- Fixed bugs related to malloc replacement under Windows
+- A few other small changes in code and documentation.
+
+------------------------------------------------------------------------
+Intel TBB 2.2 commercial-aligned release
+TBB_INTERFACE_VERSION == 4000
+
+Changes (w.r.t. Intel TBB 2.1 U4 commercial-aligned release):
+
+- Incorporates all changes from open-source releases below.
+- Architecture folders renamed from em64t to intel64 and from itanium
+ to ia64.
+- Major Interface version changed from 3 to 4. Deprecated interfaces
+ might be removed in future releases.
+- Parallel algorithms that use partitioners have switched to use
+ the auto_partitioner by default.
+- Improved memory allocator performance for allocations bigger than 8K.
+- Added new thread-bound filters functionality for pipeline.
+- New implementation of concurrent_hash_map that improves performance
+ significantly.
+- A few other small changes in code and documentation.
+
+------------------------------------------------------------------------
+20090511 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Basic support for MinGW32 development kit.
+- Added tbb::zero_allocator class that initializes memory with zeros.
+ It can be used as an adaptor to any STL-compatible allocator class.
+- Added tbb::parallel_for_each template function as alias to parallel_do.
+- Added more overloads for tbb::parallel_for.
+- Added support for exact exception propagation (can only be used with
+ compilers that support C++0x std::exception_ptr).
+- tbb::atomic template class can be used with enumerations.
+- mutex, recursive_mutex, spin_mutex, spin_rw_mutex classes extended
+ with explicit lock/unlock methods.
+- Fixed size() and grow_to_at_least() methods of tbb::concurrent_vector
+ to provide space allocation guarantees. More methods added for
+ compatibility with std::vector, including some from C++0x.
+- Preview of a lambda-friendly interface for low-level use of tasks.
+- scalable_msize function added to the scalable allocator (Windows only).
+- Rationalized internal auxiliary functions for spin-waiting and backoff.
+- Several tests undergo decent refactoring.
+
+Changes affecting backward compatibility:
+
+- Improvements in concurrent_queue, including limited API changes.
+ The previous version is deprecated; its functionality is accessible
+ via methods of the new tbb::concurrent_bounded_queue class.
+- grow* and push_back methods of concurrent_vector changed to return
+ iterators; old semantics is deprecated.
+
+------------------------------------------------------------------------
+Intel TBB 2.1 Update 4 commercial-aligned release
+TBB_INTERFACE_VERSION == 3016
+
+Changes (w.r.t. Intel TBB 2.1 U3 commercial-aligned release):
+
+- Added tests for aligned memory allocations and malloc replacement.
+- Several improvements for better bundling with Intel(R) C++ Compiler.
+- A few other small changes in code and documentaion.
+
+Bugs fixed:
+
+- 150 - request to build TBB examples with debug info in release mode.
+- backward compatibility issue with concurrent_queue on Windows.
+- dependency on VS 2005 SP1 runtime libraries removed.
+- compilation of GUI examples under Xcode* 3.1 (1577).
+- On Windows, TBB allocator classes can be instantiated with const types
+ for compatibility with MS implementation of STL containers (1566).
+
+------------------------------------------------------------------------
+20090313 open-source release
+
+Changes (w.r.t. 20081109 open-source release):
+
+- Includes all changes introduced in TBB 2.1 Update 2 & Update 3
+ commercial-aligned releases (see below for details).
+- Added tbb::parallel_invoke template function. It runs up to 10
+ user-defined functions in parallel and waits for them to complete.
+- Added a special library providing ability to replace the standard
+ memory allocation routines in Microsoft* C/C++ RTL (malloc/free,
+ global new/delete, etc.) with the TBB memory allocator.
+ Usage details are described in include/tbb/tbbmalloc_proxy.h file.
+- Task scheduler switched to use new implementation of its core
+ functionality (deque based task pool, new structure of arena slots).
+- Preview of Microsoft* Visual Studio* 2005 project files for
+ building the library is available in build/vsproject folder.
+- Added tests for aligned memory allocations and malloc replacement.
+- Added parallel_for/game_of_life.net example (for Windows only)
+ showing TBB usage in a .NET application.
+- A number of other fixes and improvements to code, tests, makefiles,
+ examples and documents.
+
+Bugs fixed:
+
+- The same list as in TBB 2.1 Update 4 right above.
+
+------------------------------------------------------------------------
+Intel TBB 2.1 Update 3 commercial-aligned release
+TBB_INTERFACE_VERSION == 3015
+
+Changes (w.r.t. Intel TBB 2.1 U2 commercial-aligned release):
+
+- Added support for aligned allocations to the TBB memory allocator.
+- Added a special library to use with LD_PRELOAD on Linux* in order to
+ replace the standard memory allocation routines in C/C++ with the
+ TBB memory allocator.
+- Added null_mutex and null_rw_mutex: no-op classes interface-compliant
+ to other TBB mutexes.
+- Improved performance of parallel_sort, to close most of the serial gap
+ with std::sort, and beat it on 2 and more cores.
+- A few other small changes.
+
+Bugs fixed:
+
+- the problem where parallel_for hanged after exception throw
+ if affinity_partitioner was used (1556).
+- get rid of VS warnings about mbstowcs deprecation (1560),
+ as well as some other warnings.
+- operator== for concurrent_vector::iterator fixed to work correctly
+ with different vector instances.
+
+------------------------------------------------------------------------
+Intel TBB 2.1 Update 2 commercial-aligned release
+TBB_INTERFACE_VERSION == 3014
+
+Changes (w.r.t. Intel TBB 2.1 U1 commercial-aligned release):
+
+- Incorporates all open-source-release changes down to TBB 2.1 U1,
+ except for:
+ - 20081019 addition of enumerable_thread_specific;
+- Warning level for Microsoft* Visual C++* compiler raised to /W4 /Wp64;
+ warnings found on this level were cleaned or suppressed.
+- Added TBB_runtime_interface_version API function.
+- Added new example: pipeline/square.
+- Added exception handling and cancellation support
+ for parallel_do and pipeline.
+- Added copy constructor and [begin,end) constructor to concurrent_queue.
+- Added some support for beta version of Intel(R) Parallel Amplifier.
+- Added scripts to set environment for cross-compilation of 32-bit
+ applications on 64-bit Linux with Intel(R) C++ Compiler.
+- Fixed semantics of concurrent_vector::clear() to not deallocate
+ internal arrays. Fixed compact() to perform such deallocation later.
+- Fixed the issue with atomic when T is incomplete type.
+- Improved support for PowerPC* Macintosh*, including the fix
+ for a bug in masked compare-and-swap reported by a customer.
+- As usual, a number of other improvements everywhere.
+
+------------------------------------------------------------------------
+20081109 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Added new serial out of order filter for tbb::pipeline.
+- Fixed the issue with atomic::operator= reported at the forum.
+- Fixed the issue with using tbb::task::self() in task destructor
+ reported at the forum.
+- A number of other improvements to code, tests, makefiles, examples
+ and documents.
+
+Open-source contributions integrated:
+- Changes in the memory allocator were partially integrated.
+
+------------------------------------------------------------------------
+20081019 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Introduced enumerable_thread_specific. This new class provides a
+ wrapper around native thread local storage as well as iterators and
+ ranges for accessing the thread local copies (1533).
+- Improved support for Intel(R) Threading Analysis Tools
+ on Intel(R) 64 architecture.
+- Dependency from Microsoft* CRT was integrated to the libraries using
+ manifests, to avoid issues if called from code that uses different
+ version of Visual C++* runtime than the library.
+- Introduced new defines TBB_USE_ASSERT, TBB_USE_DEBUG,
+ TBB_USE_PERFORMANCE_WARNINGS, TBB_USE_THREADING_TOOLS.
+- A number of other improvements to code, tests, makefiles, examples
+ and documents.
+
+Open-source contributions integrated:
+
+- linker optimization: /incremental:no .
+
+------------------------------------------------------------------------
+20080925 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Same fix for a memory leak in the memory allocator as in TBB 2.1 U1.
+- Improved support for lambda functions.
+- Fixed more concurrent_queue issues reported at the forum.
+- A number of other improvements to code, tests, makefiles, examples
+ and documents.
+
+------------------------------------------------------------------------
+Intel TBB 2.1 Update 1 commercial-aligned release
+TBB_INTERFACE_VERSION == 3013
+
+Changes (w.r.t. Intel TBB 2.1 commercial-aligned release):
+
+- Fixed small memory leak in the memory allocator.
+- Incorporates all open-source-release changes since TBB 2.1,
+ except for:
+ - 20080825 changes for parallel_do;
+
+------------------------------------------------------------------------
+20080825 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Added exception handling and cancellation support for parallel_do.
+- Added default HashCompare template argument for concurrent_hash_map.
+- Fixed concurrent_queue.clear() issues due to incorrect assumption
+ about clear() being private method.
+- Added the possibility to use TBB in applications that change
+ default calling conventions (Windows* only).
+- Many improvements to code, tests, examples, makefiles and documents.
+
+Bugs fixed:
+
+- 120, 130 - memset declaration missed in concurrent_hash_map.h
+
+------------------------------------------------------------------------
+20080724 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Inline assembly for atomic operations improved for gcc 4.3
+- A few more improvements to the code.
+
+------------------------------------------------------------------------
+20080709 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- operator=() was added to the tbb_thread class according to
+ the current working draft for std::thread.
+- Recognizing SPARC* in makefiles for Linux* and Sun Solaris*.
+
+Bugs fixed:
+
+- 127 - concurrent_hash_map::range fixed to split correctly.
+
+Open-source contributions integrated:
+
+- fix_set_midpoint.diff by jyasskin
+- SPARC* support in makefiles by Raf Schietekat
+
+------------------------------------------------------------------------
+20080622 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Fixed a hang that rarely happened on Linux
+ during deinitialization of the TBB scheduler.
+- Improved support for Intel(R) Thread Checker.
+- A few more improvements to the code.
+
+------------------------------------------------------------------------
+Intel TBB 2.1 commercial-aligned release
+TBB_INTERFACE_VERSION == 3011
+
+Changes (w.r.t. Intel TBB 2.0 U3 commercial-aligned release):
+
+- All open-source-release changes down to, and including, TBB 2.0 below,
+ were incorporated into this release.
+
+------------------------------------------------------------------------
+20080605 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Explicit control of exported symbols by version scripts added on Linux.
+- Interfaces polished for exception handling & algorithm cancellation.
+- Cache behavior improvements in the scalable allocator.
+- Improvements in text_filter, polygon_overlay, and other examples.
+- A lot of other stability improvements in code, tests, and makefiles.
+- First release where binary packages include headers/docs/examples, so
+ binary packages are now self-sufficient for using TBB.
+
+Open-source contributions integrated:
+
+- atomics patch (partially).
+- tick_count warning patch.
+
+Bugs fixed:
+
+- 118 - fix for boost compatibility.
+- 123 - fix for tbb_machine.h.
+
+------------------------------------------------------------------------
+20080512 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Fixed a problem with backward binary compatibility
+ of debug Linux builds.
+- Sun* Studio* support added.
+- soname support added on Linux via linker script. To restore backward
+ binary compatibility, *.so -> *.so.2 softlinks should be created.
+- concurrent_hash_map improvements - added few new forms of insert()
+ method and fixed precondition and guarantees of erase() methods.
+ Added runtime warning reporting about bad hash function used for
+ the container. Various improvements for performance and concurrency.
+- Cancellation mechanism reworked so that it does not hurt scalability.
+- Algorithm parallel_do reworked. Requirement for Body::argument_type
+ definition removed, and work item argument type can be arbitrarily
+ cv-qualified.
+- polygon_overlay example added.
+- A few more improvements to code, tests, examples and Makefiles.
+
+Open-source contributions integrated:
+
+- Soname support patch for Bugzilla #112.
+
+Bugs fixed:
+
+- 112 - fix for soname support.
+
+------------------------------------------------------------------------
+Intel TBB 2.0 U3 commercial-aligned release (package 017, April 20, 2008)
+
+Corresponds to commercial 019 (for Linux*, 020; for Mac OS* X, 018)
+packages.
+
+Changes (w.r.t. Intel TBB 2.0 U2 commercial-aligned release):
+
+- Does not contain open-source-release changes below; this release is
+ only a minor update of TBB 2.0 U2.
+- Removed spin-waiting in pipeline and concurrent_queue.
+- A few more small bug fixes from open-source releases below.
+
+------------------------------------------------------------------------
+20080408 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- count_strings example reworked: new word generator implemented, hash
+ function replaced, and tbb_allocator is used with std::string class.
+- Static methods of spin_rw_mutex were replaced by normal member
+ functions, and the class name was versioned.
+- tacheon example was renamed to tachyon.
+- Improved support for Intel(R) Thread Checker.
+- A few more minor improvements.
+
+Open-source contributions integrated:
+
+- Two sets of Sun patches for IA Solaris support.
+
+------------------------------------------------------------------------
+20080402 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Exception handling and cancellation support for tasks and algorithms
+ fully enabled.
+- Exception safety guaranties defined and fixed for all concurrent
+ containers.
+- User-defined memory allocator support added to all concurrent
+ containers.
+- Performance improvement of concurrent_hash_map, spin_rw_mutex.
+- Critical fix for a rare race condition during scheduler
+ initialization/de-initialization.
+- New methods added for concurrent containers to be closer to STL,
+ as well as automatic filters removal from pipeline
+ and __TBB_AtomicAND function.
+- The volatile keyword dropped from where it is not really needed.
+- A few more minor improvements.
+
+------------------------------------------------------------------------
+20080319 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Support for gcc version 4.3 was added.
+- tbb_thread class, near compatible with std::thread expected in C++0x,
+ was added.
+
+Bugs fixed:
+
+- 116 - fix for compilation issues with gcc version 4.2.1.
+- 120 - fix for compilation issues with gcc version 4.3.
+
+------------------------------------------------------------------------
+20080311 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- An enumerator added for pipeline filter types (serial vs. parallel).
+- New task_scheduler_observer class introduced, to observe when
+ threads start and finish interacting with the TBB task scheduler.
+- task_scheduler_init reverted to not use internal versioned class;
+ binary compatibility guaranteed with stable releases only.
+- Various improvements to code, tests, examples and Makefiles.
+
+------------------------------------------------------------------------
+20080304 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Task-to-thread affinity support, previously kept under a macro,
+ now fully legalized.
+- Work-in-progress on cache_aligned_allocator improvements.
+- Pipeline really supports parallel input stage; it's no more serialized.
+- Various improvements to code, tests, examples and Makefiles.
+
+Bugs fixed:
+
+- 119 - fix for scalable_malloc sometimes failing to return a big block.
+- TR575 - fixed a deadlock occurring on Windows in startup/shutdown
+ under some conditions.
+
+------------------------------------------------------------------------
+20080226 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Introduced tbb_allocator to select between standard allocator and
+ tbb::scalable_allocator when available.
+- Removed spin-waiting in pipeline and concurrent_queue.
+- Improved performance of concurrent_hash_map by using tbb_allocator.
+- Improved support for Intel(R) Thread Checker.
+- Various improvements to code, tests, examples and Makefiles.
+
+------------------------------------------------------------------------
+Intel TBB 2.0 U2 commercial-aligned release (package 017, February 14, 2008)
+
+Corresponds to commercial 017 (for Linux*, 018; for Mac OS* X, 016)
+packages.
+
+Changes (w.r.t. Intel TBB 2.0 U1 commercial-aligned release):
+
+- Does not contain open-source-release changes below; this release is
+ only a minor update of TBB 2.0 U1.
+- Add support for Microsoft* Visual Studio* 2008, including binary
+ libraries and VS2008 projects for examples.
+- Use SwitchToThread() not Sleep() to yield threads on Windows*.
+- Enhancements to Doxygen-readable comments in source code.
+- A few more small bug fixes from open-source releases below.
+
+Bugs fixed:
+
+- TR569 - Memory leak in concurrent_queue.
+
+------------------------------------------------------------------------
+20080207 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Improvements and minor fixes in VS2008 projects for examples.
+- Improvements in code for gating worker threads that wait for work,
+ previously consolidated under #if IMPROVED_GATING, now legalized.
+- Cosmetic changes in code, examples, tests.
+
+Bugs fixed:
+
+- 113 - Iterators and ranges should be convertible to their const
+ counterparts.
+- TR569 - Memory leak in concurrent_queue.
+
+------------------------------------------------------------------------
+20080122 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Updated examples/parallel_for/seismic to improve the visuals and to
+ use the affinity_partitioner (20071127 and forward) for better
+ performance.
+- Minor improvements to unittests and performance tests.
+
+------------------------------------------------------------------------
+20080115 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Cleanup, simplifications and enhancements to the Makefiles for
+ building the libraries (see build/index.html for high-level
+ changes) and the examples.
+- Use SwitchToThread() not Sleep() to yield threads on Windows*.
+- Engineering work-in-progress on exception safety/support.
+- Engineering work-in-progress on affinity_partitioner for
+ parallel_reduce.
+- Engineering work-in-progress on improved gating for worker threads
+ (idle workers now block in the OS instead of spinning).
+- Enhancements to Doxygen-readable comments in source code.
+
+Bugs fixed:
+
+- 102 - Support for parallel build with gmake -j
+- 114 - /Wp64 build warning on Windows*.
+
+------------------------------------------------------------------------
+20071218 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Full support for Microsoft* Visual Studio* 2008 in open-source.
+ Binaries for vc9/ will be available in future stable releases.
+- New recursive_mutex class.
+- Full support for 32-bit PowerMac including export files for builds.
+- Improvements to parallel_do.
+
+------------------------------------------------------------------------
+20071206 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Support for Microsoft* Visual Studio* 2008 in building libraries
+ from source as well as in vc9/ projects for examples.
+- Small fixes to the affinity_partitioner first introduced in 20071127.
+- Small fixes to the thread-stack size hook first introduced in 20071127.
+- Engineering work in progress on concurrent_vector.
+- Engineering work in progress on exception behavior.
+- Unittest improvements.
+
+------------------------------------------------------------------------
+20071127 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- Task-to-thread affinity support (affinity partitioner) first appears.
+- More work on concurrent_vector.
+- New parallel_do algorithm (function-style version of parallel while)
+ and parallel_do/parallel_preorder example.
+- New task_scheduler_init() hooks for getting default_num_threads() and
+ for setting thread stack size.
+- Support for weak memory consistency models in the code base.
+- Futex usage in the task scheduler (Linux).
+- Started adding 32-bit PowerMac support.
+- Intel(R) 9.1 compilers are now the base supported Intel(R) compiler
+ version.
+- TBB libraries added to link line automatically on Microsoft Windows*
+ systems via #pragma comment linker directives.
+
+Open-source contributions integrated:
+
+- FreeBSD platform support patches.
+- AIX weak memory model patch.
+
+Bugs fixed:
+
+- 108 - Removed broken affinity.h reference.
+- 101 - Does not build on Debian Lenny (replaced arch with uname -m).
+
+------------------------------------------------------------------------
+20071030 open-source release
+
+Changes (w.r.t. previous open-source release):
+
+- More work on concurrent_vector.
+- Better support for building with -Wall -Werror (or not) as desired.
+- A few fixes to eliminate extraneous warnings.
+- Begin introduction of versioning hooks so that the internal/API
+ version is tracked via TBB_INTERFACE_VERSION. The newest binary
+ libraries should always work with previously-compiled code when-
+ ever possible.
+- Engineering work in progress on using futex inside the mutexes (Linux).
+- Engineering work in progress on exception behavior.
+- Engineering work in progress on a new parallel_do algorithm.
+- Unittest improvements.
+
+------------------------------------------------------------------------
+20070927 open-source release
+
+Changes (w.r.t. Intel TBB 2.0 U1 commercial-aligned release):
+
+- Minor update to TBB 2.0 U1 below.
+- Begin introduction of new concurrent_vector interfaces not released
+ with TBB 2.0 U1.
+
+------------------------------------------------------------------------
+Intel TBB 2.0 U1 commercial-aligned release (package 014, October 1, 2007)
+
+Corresponds to commercial 014 (for Linux*, 016) packages.
+
+Changes (w.r.t. Intel TBB 2.0 commercial-aligned release):
+
+- All open-source-release changes down to, and including, TBB 2.0
+ below, were incorporated into this release.
+- Made a number of changes to the officially supported OS list:
+ Added Linux* OSs:
+ Asianux* 3, Debian* 4.0, Fedora Core* 6, Fedora* 7,
+ Turbo Linux* 11, Ubuntu* 7.04;
+ Dropped Linux* OSs:
+ Asianux* 2, Fedora Core* 4, Haansoft* Linux 2006 Server,
+ Mandriva/Mandrake* 10.1, Miracle Linux* 4.0,
+ Red Flag* DC Server 5.0;
+ Only Mac OS* X 10.4.9 (and forward) and Xcode* tool suite 2.4.1 (and
+ forward) are now supported.
+- Commercial installers on Linux* fixed to recommend the correct
+ binaries to use in more cases, with less unnecessary warnings.
+- Changes to eliminate spurious build warnings.
+
+Open-source contributions integrated:
+
+- Two small header guard macro patches; it also fixed bug #94.
+- New blocked_range3d class.
+
+Bugs fixed:
+
+- 93 - Removed misleading comments in task.h.
+- 94 - See above.
+
+------------------------------------------------------------------------
+20070815 open-source release
+
+Changes:
+
+- Changes to eliminate spurious build warnings.
+- Engineering work in progress on concurrent_vector allocator behavior.
+- Added hooks to use the Intel(R) compiler code coverage tools.
+
+Open-source contributions integrated:
+
+- Mac OS* X build warning patch.
+
+Bugs fixed:
+
+- 88 - Fixed TBB compilation errors if both VS2005 and Windows SDK are
+ installed.
+
+------------------------------------------------------------------------
+20070719 open-source release
+
+Changes:
+
+- Minor update to TBB 2.0 commercial-aligned release below.
+- Changes to eliminate spurious build warnings.
+
+------------------------------------------------------------------------
+Intel TBB 2.0 commercial-aligned release (package 010, July 19, 2007)
+
+Corresponds to commercial 010 (for Linux*, 012) packages.
+
+- TBB open-source debut release.
+
+------------------------------------------------------------------------
+Intel TBB 1.1 commercial release (April 10, 2007)
+
+Changes (w.r.t. Intel TBB 1.0 commercial release):
+
+- auto_partitioner which offered an automatic alternative to specifying
+ a grain size parameter to estimate the best granularity for tasks.
+- The release was added to the Intel(R) C++ Compiler 10.0 Pro.
+
+------------------------------------------------------------------------
+Intel TBB 1.0 Update 2 commercial release
+
+Changes (w.r.t. Intel TBB 1.0 Update 1 commercial release):
+
+- Mac OS* X 64-bit support added.
+- Source packages for commercial releases introduced.
+
+------------------------------------------------------------------------
+Intel TBB 1.0 Update 1 commercial-aligned release
+
+Changes (w.r.t. Intel TBB 1.0 commercial release):
+
+- Fix for critical package issue on Mac OS* X.
+
+------------------------------------------------------------------------
+Intel TBB 1.0 commercial release (August 29, 2006)
+
+Changes (w.r.t. Intel TBB 1.0 beta commercial release):
+
+- New namespace (and compatibility headers for old namespace).
+ Namespaces are tbb and tbb::internal and all classes are in the
+ underscore_style not the WindowsStyle.
+- New class: scalable_allocator (and cache_aligned_allocator using that
+ if it exists).
+- Added parallel_for/tacheon example.
+- Removed C-style casts from headers for better C++ compliance.
+- Bug fixes.
+- Documentation improvements.
+- Improved performance of the concurrent_hash_map class.
+- Upgraded parallel_sort() to support STL-style random-access iterators
+ instead of just pointers.
+- The Windows vs7_1 directories renamed to vs7.1 in examples.
+- New class: spin version of reader-writer lock.
+- Added push_back() interface to concurrent_vector().
+
+------------------------------------------------------------------------
+Intel TBB 1.0 beta commercial release
+
+Initial release.
+
+Features / APIs:
+
+- Concurrent containers: ConcurrentHashTable, ConcurrentVector,
+ ConcurrentQueue.
+- Parallel algorithms: ParallelFor, ParallelReduce, ParallelScan,
+ ParallelWhile, Pipeline, ParallelSort.
+- Support: AlignedSpace, BlockedRange (i.e., 1D), BlockedRange2D
+- Task scheduler with multi-master support.
+- Atomics: read, write, fetch-and-store, fetch-and-add, compare-and-swap.
+- Locks: spin, reader-writer, queuing, OS-wrapper.
+- Memory allocation: STL-style memory allocator that avoids false
+ sharing.
+- Timers.
+
+Tools Support:
+- Intel(R) Thread Checker 3.0.
+- Intel(R) Thread Profiler 3.0.
+
+Documentation:
+- First Use Documents: README.txt, INSTALL.txt, Release_Notes.txt,
+ Doc_Index.html, Getting_Started.pdf, Tutorial.pdf, Reference.pdf.
+- Class hierarchy HTML pages (Doxygen).
+- Tree of index.html pages for navigating the installed package, esp.
+ for the examples.
+
+Examples:
+- One for each of these TBB features: ConcurrentHashTable, ParallelFor,
+ ParallelReduce, ParallelWhile, Pipeline, Task.
+- Live copies of examples from Getting_Started.pdf.
+- TestAll example that exercises every class and header in the package
+ (i.e., a "liveness test").
+- Compilers: see Release_Notes.txt.
+- APIs: OpenMP, WinThreads, Pthreads.
+
+Packaging:
+- Package for Windows installs IA-32 and EM64T bits.
+- Package for Linux installs IA-32, EM64T and IPF bits.
+- Package for Mac OS* X installs IA-32 bits.
+- All packages support Intel(R) software setup assistant (ISSA) and
+ install-time FLEXlm license checking.
+- ISSA support allows license file to be specified directly in case of
+ no Internet connection or problems with IRC or serial #s.
+- Linux installer allows root or non-root, RPM or non-RPM installs.
+- FLEXlm license servers (for those who need floating/counted licenses)
+ are provided separately on Intel(R) Premier.
+
+------------------------------------------------------------------------
+Intel and Cilk are registered trademarks or trademarks of Intel Corporation or its
+subsidiaries in the United States and other countries.
+
+* Other names and brands may be claimed as the property of others.
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/COPYING b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/COPYING
new file mode 100644
index 000000000..5af6ed874
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/COPYING
@@ -0,0 +1,353 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ , 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
+---------------- END OF Gnu General Public License ----------------
+
+The source code of Threading Building Blocks is distributed under version 2
+of the GNU General Public License, with the so-called "runtime exception,"
+as follows (or see any header or implementation file):
+
+ As a special exception, you may use this file as part of a free software
+ library without restriction. Specifically, if other files instantiate
+ templates or use macros or inline functions from this file, or you compile
+ this file and link it with other files to produce an executable, this
+ file does not by itself cause the resulting executable to be covered by
+ the GNU General Public License. This exception does not however
+ invalidate any other reasons why the executable file might be covered by
+ the GNU General Public License.
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/Makefile b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/Makefile
new file mode 100644
index 000000000..8616ffc78
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/Makefile
@@ -0,0 +1,88 @@
+# Copyright 2005-2013 Intel Corporation. All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction. Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License. This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+tbb_root?=.
+include $(tbb_root)/build/common.inc
+.PHONY: default all tbb tbbmalloc tbbproxy test examples
+
+#workaround for non-depend targets tbb and tbbmalloc which both depend on version_string.ver
+#According to documentation submakes should run in parallel
+.NOTPARALLEL: tbb tbbmalloc tbbproxy
+
+default: tbb tbbmalloc $(if $(use_proxy),tbbproxy)
+
+all: tbb tbbmalloc tbbproxy test examples
+
+tbb: mkdir
+ $(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.tbb cfg=debug tbb_root=$(tbb_root)
+ $(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbb cfg=release tbb_root=$(tbb_root)
+
+tbbmalloc: mkdir
+ $(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=debug malloc tbb_root=$(tbb_root)
+ $(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=release malloc tbb_root=$(tbb_root)
+
+tbbproxy: mkdir
+ $(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.tbbproxy cfg=debug tbbproxy tbb_root=$(tbb_root)
+ $(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbbproxy cfg=release tbbproxy tbb_root=$(tbb_root)
+
+test: tbb tbbmalloc $(if $(use_proxy),tbbproxy)
+ -$(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=debug malloc_test tbb_root=$(tbb_root)
+ -$(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.test cfg=debug tbb_root=$(tbb_root)
+ -$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=release malloc_test tbb_root=$(tbb_root)
+ -$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.test cfg=release tbb_root=$(tbb_root)
+
+rml: mkdir
+ $(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.rml cfg=debug tbb_root=$(tbb_root)
+ $(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.rml cfg=release tbb_root=$(tbb_root)
+
+
+examples: tbb tbbmalloc
+ $(MAKE) -C examples -r -f Makefile tbb_root=.. release test
+
+.PHONY: clean clean_examples mkdir info
+
+clean: clean_examples
+ $(shell $(RM) $(work_dir)_release$(SLASH)*.* >$(NUL) 2>$(NUL))
+ $(shell $(RD) $(work_dir)_release >$(NUL) 2>$(NUL))
+ $(shell $(RM) $(work_dir)_debug$(SLASH)*.* >$(NUL) 2>$(NUL))
+ $(shell $(RD) $(work_dir)_debug >$(NUL) 2>$(NUL))
+ @echo clean done
+
+clean_examples:
+ $(shell $(MAKE) -s -i -r -C examples -f Makefile tbb_root=.. clean >$(NUL) 2>$(NUL))
+
+mkdir:
+ $(shell $(MD) "$(work_dir)_release" >$(NUL) 2>$(NUL))
+ $(shell $(MD) "$(work_dir)_debug" >$(NUL) 2>$(NUL))
+ @echo Created $(work_dir)_release and ..._debug directories
+
+info:
+ @echo OS: $(tbb_os)
+ @echo arch=$(arch)
+ @echo compiler=$(compiler)
+ @echo runtime=$(runtime)
+ @echo tbb_build_prefix=$(tbb_build_prefix)
+
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/README b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/README
new file mode 100644
index 000000000..67ab8ad2e
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/README
@@ -0,0 +1,11 @@
+Threading Building Blocks - README
+
+See index.html for directions and documentation.
+
+If source is present (./Makefile and src/ directories),
+type 'gmake' in this directory to build and test.
+
+See examples/index.html for runnable examples and directions.
+
+See http://threadingbuildingblocks.org for full documentation
+and software information.
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/irml/irml.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/irml/irml.dll
new file mode 100644
index 000000000..2fe271b90
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/irml/irml.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/irml/irml.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/irml/irml.pdb
new file mode 100644
index 000000000..268b7efec
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/irml/irml.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/irml/irml_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/irml/irml_debug.dll
new file mode 100644
index 000000000..cb00c8cce
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/irml/irml_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/irml/irml_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/irml/irml_debug.pdb
new file mode 100644
index 000000000..8a7c2a918
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/irml/irml_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/irml_c/irml.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/irml_c/irml.dll
new file mode 100644
index 000000000..01cc65db4
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/irml_c/irml.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/irml_c/irml.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/irml_c/irml.pdb
new file mode 100644
index 000000000..ecf4b09ce
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/irml_c/irml.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/irml_c/irml_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/irml_c/irml_debug.dll
new file mode 100644
index 000000000..98ced9f20
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/irml_c/irml_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/irml_c/irml_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/irml_c/irml_debug.pdb
new file mode 100644
index 000000000..3bb8d6860
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/irml_c/irml_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbb.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbb.dll
new file mode 100644
index 000000000..3018944d8
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbb.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbb.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbb.pdb
new file mode 100644
index 000000000..f7d8b11f0
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbb.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbb_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbb_debug.dll
new file mode 100644
index 000000000..f8748437b
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbb_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbb_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbb_debug.pdb
new file mode 100644
index 000000000..f32f796e1
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbb_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbb_preview.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbb_preview.dll
new file mode 100644
index 000000000..56a8907d8
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbb_preview.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbb_preview.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbb_preview.pdb
new file mode 100644
index 000000000..a54941dcd
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbb_preview.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbb_preview_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbb_preview_debug.dll
new file mode 100644
index 000000000..36c965824
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbb_preview_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbb_preview_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbb_preview_debug.pdb
new file mode 100644
index 000000000..8935431d8
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbb_preview_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc.dll
new file mode 100644
index 000000000..66d3a4363
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc.pdb
new file mode 100644
index 000000000..8d3de9249
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_debug.dll
new file mode 100644
index 000000000..001bf5db5
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_debug.pdb
new file mode 100644
index 000000000..4b618861b
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_proxy.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_proxy.dll
new file mode 100644
index 000000000..03d3b4a0d
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_proxy.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_proxy.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_proxy.pdb
new file mode 100644
index 000000000..b417c43c8
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_proxy.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_proxy_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_proxy_debug.dll
new file mode 100644
index 000000000..d59f6a4cd
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_proxy_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_proxy_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_proxy_debug.pdb
new file mode 100644
index 000000000..db3a89862
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc10/tbbmalloc_proxy_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/irml/irml.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/irml/irml.dll
new file mode 100644
index 000000000..f6a055e39
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/irml/irml.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/irml/irml.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/irml/irml.pdb
new file mode 100644
index 000000000..65dcb872d
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/irml/irml.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/irml/irml_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/irml/irml_debug.dll
new file mode 100644
index 000000000..373442528
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/irml/irml_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/irml/irml_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/irml/irml_debug.pdb
new file mode 100644
index 000000000..d5b13906a
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/irml/irml_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbb.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbb.dll
new file mode 100644
index 000000000..5632846fc
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbb.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbb.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbb.pdb
new file mode 100644
index 000000000..5ef06f80d
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbb.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbb_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbb_debug.dll
new file mode 100644
index 000000000..717d2d992
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbb_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbb_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbb_debug.pdb
new file mode 100644
index 000000000..494f40086
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbb_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbb_preview.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbb_preview.dll
new file mode 100644
index 000000000..58c2c4d81
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbb_preview.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbb_preview.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbb_preview.pdb
new file mode 100644
index 000000000..eeff43c67
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbb_preview.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbb_preview_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbb_preview_debug.dll
new file mode 100644
index 000000000..49579a393
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbb_preview_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbb_preview_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbb_preview_debug.pdb
new file mode 100644
index 000000000..8f902cf6b
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbb_preview_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc.dll
new file mode 100644
index 000000000..939ea1865
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc.pdb
new file mode 100644
index 000000000..3295bc9d6
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_debug.dll
new file mode 100644
index 000000000..65c7051d8
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_debug.pdb
new file mode 100644
index 000000000..b2e6b8e5e
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_proxy.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_proxy.dll
new file mode 100644
index 000000000..ac47c3b0a
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_proxy.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_proxy.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_proxy.pdb
new file mode 100644
index 000000000..7d5a7f6bf
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_proxy.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_proxy_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_proxy_debug.dll
new file mode 100644
index 000000000..db8f897b2
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_proxy_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_proxy_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_proxy_debug.pdb
new file mode 100644
index 000000000..dac779b45
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11/tbbmalloc_proxy_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/irml/irml.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/irml/irml.dll
new file mode 100644
index 000000000..8211728ff
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/irml/irml.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/irml/irml.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/irml/irml.pdb
new file mode 100644
index 000000000..cf9954364
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/irml/irml.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/irml/irml_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/irml/irml_debug.dll
new file mode 100644
index 000000000..8505fbe1a
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/irml/irml_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/irml/irml_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/irml/irml_debug.pdb
new file mode 100644
index 000000000..f003b3b45
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/irml/irml_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbb.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbb.dll
new file mode 100644
index 000000000..361fe556a
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbb.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbb.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbb.pdb
new file mode 100644
index 000000000..37bbc1918
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbb.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_debug.dll
new file mode 100644
index 000000000..e882112ae
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_debug.pdb
new file mode 100644
index 000000000..37a6ea59a
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_preview.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_preview.dll
new file mode 100644
index 000000000..3c58a7cdc
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_preview.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_preview.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_preview.pdb
new file mode 100644
index 000000000..4064134aa
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_preview.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_preview_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_preview_debug.dll
new file mode 100644
index 000000000..6258af27e
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_preview_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_preview_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_preview_debug.pdb
new file mode 100644
index 000000000..60ecd2ac4
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbb_preview_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc.dll
new file mode 100644
index 000000000..93c2b024d
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc.pdb
new file mode 100644
index 000000000..2af4137d7
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_debug.dll
new file mode 100644
index 000000000..31b1050ee
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_debug.pdb
new file mode 100644
index 000000000..c518acbd8
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_proxy.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_proxy.dll
new file mode 100644
index 000000000..bd726eb3b
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_proxy.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_proxy.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_proxy.pdb
new file mode 100644
index 000000000..0fc3faf7f
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_proxy.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_proxy_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_proxy_debug.dll
new file mode 100644
index 000000000..c859177eb
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_proxy_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_proxy_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_proxy_debug.pdb
new file mode 100644
index 000000000..5c4768c36
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc11_ui/tbbmalloc_proxy_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/irml/irml.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/irml/irml.dll
new file mode 100644
index 000000000..fd28b4dcf
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/irml/irml.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/irml/irml.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/irml/irml.pdb
new file mode 100644
index 000000000..9c2bc8530
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/irml/irml.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/irml/irml_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/irml/irml_debug.dll
new file mode 100644
index 000000000..673bd80b7
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/irml/irml_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/irml/irml_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/irml/irml_debug.pdb
new file mode 100644
index 000000000..b89115432
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/irml/irml_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbb.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbb.dll
new file mode 100644
index 000000000..674cfae74
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbb.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbb.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbb.pdb
new file mode 100644
index 000000000..06ed30982
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbb.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbb_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbb_debug.dll
new file mode 100644
index 000000000..455228ce6
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbb_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbb_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbb_debug.pdb
new file mode 100644
index 000000000..322205eb2
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbb_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbb_preview.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbb_preview.dll
new file mode 100644
index 000000000..b69233db4
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbb_preview.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbb_preview.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbb_preview.pdb
new file mode 100644
index 000000000..df16bf84e
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbb_preview.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbb_preview_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbb_preview_debug.dll
new file mode 100644
index 000000000..a25a53d91
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbb_preview_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbb_preview_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbb_preview_debug.pdb
new file mode 100644
index 000000000..498bb70e5
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbb_preview_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc.dll
new file mode 100644
index 000000000..148368e4e
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc.pdb
new file mode 100644
index 000000000..9ff03f781
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_debug.dll
new file mode 100644
index 000000000..d4b9c2119
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_debug.pdb
new file mode 100644
index 000000000..399e53b90
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_proxy.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_proxy.dll
new file mode 100644
index 000000000..4e69a14c6
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_proxy.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_proxy.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_proxy.pdb
new file mode 100644
index 000000000..52e7845d2
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_proxy.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_proxy_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_proxy_debug.dll
new file mode 100644
index 000000000..fdcfdda6f
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_proxy_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_proxy_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_proxy_debug.pdb
new file mode 100644
index 000000000..46f7aa871
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/ia32/vc9/tbbmalloc_proxy_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/irml/irml.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/irml/irml.dll
new file mode 100644
index 000000000..e8078c9d8
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/irml/irml.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/irml/irml.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/irml/irml.pdb
new file mode 100644
index 000000000..0ee7ad0e5
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/irml/irml.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/irml/irml_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/irml/irml_debug.dll
new file mode 100644
index 000000000..882fd3ff8
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/irml/irml_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/irml/irml_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/irml/irml_debug.pdb
new file mode 100644
index 000000000..dba828864
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/irml/irml_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/irml_c/irml.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/irml_c/irml.dll
new file mode 100644
index 000000000..c7ee43c73
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/irml_c/irml.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/irml_c/irml.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/irml_c/irml.pdb
new file mode 100644
index 000000000..d57fe745b
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/irml_c/irml.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/irml_c/irml_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/irml_c/irml_debug.dll
new file mode 100644
index 000000000..b1173f452
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/irml_c/irml_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/irml_c/irml_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/irml_c/irml_debug.pdb
new file mode 100644
index 000000000..3aee747e3
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/irml_c/irml_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbb.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbb.dll
new file mode 100644
index 000000000..e803c9eb0
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbb.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbb.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbb.pdb
new file mode 100644
index 000000000..0031813ca
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbb.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbb_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbb_debug.dll
new file mode 100644
index 000000000..1a464cccc
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbb_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbb_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbb_debug.pdb
new file mode 100644
index 000000000..6e67a410e
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbb_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbb_preview.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbb_preview.dll
new file mode 100644
index 000000000..f55e9980e
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbb_preview.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbb_preview.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbb_preview.pdb
new file mode 100644
index 000000000..81de86e67
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbb_preview.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbb_preview_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbb_preview_debug.dll
new file mode 100644
index 000000000..dce89668f
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbb_preview_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbb_preview_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbb_preview_debug.pdb
new file mode 100644
index 000000000..2152a1c47
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbb_preview_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc.dll
new file mode 100644
index 000000000..95746e464
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc.pdb
new file mode 100644
index 000000000..2e466f929
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_debug.dll
new file mode 100644
index 000000000..b6d160110
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_debug.pdb
new file mode 100644
index 000000000..5202d1dc2
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_proxy.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_proxy.dll
new file mode 100644
index 000000000..4c0c89d9e
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_proxy.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_proxy.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_proxy.pdb
new file mode 100644
index 000000000..8fe47a7f1
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_proxy.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_proxy_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_proxy_debug.dll
new file mode 100644
index 000000000..f9d4056b0
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_proxy_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_proxy_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_proxy_debug.pdb
new file mode 100644
index 000000000..3807c1766
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc10/tbbmalloc_proxy_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/irml/irml.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/irml/irml.dll
new file mode 100644
index 000000000..e05a33c67
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/irml/irml.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/irml/irml.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/irml/irml.pdb
new file mode 100644
index 000000000..b2ef1bb71
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/irml/irml.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/irml/irml_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/irml/irml_debug.dll
new file mode 100644
index 000000000..e92985835
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/irml/irml_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/irml/irml_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/irml/irml_debug.pdb
new file mode 100644
index 000000000..260073b46
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/irml/irml_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbb.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbb.dll
new file mode 100644
index 000000000..974367563
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbb.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbb.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbb.pdb
new file mode 100644
index 000000000..a77ed2687
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbb.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbb_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbb_debug.dll
new file mode 100644
index 000000000..af8a3dd84
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbb_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbb_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbb_debug.pdb
new file mode 100644
index 000000000..b7e745b22
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbb_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbb_preview.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbb_preview.dll
new file mode 100644
index 000000000..78ac18169
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbb_preview.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbb_preview.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbb_preview.pdb
new file mode 100644
index 000000000..4a64dbc4b
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbb_preview.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbb_preview_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbb_preview_debug.dll
new file mode 100644
index 000000000..ac1374fc6
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbb_preview_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbb_preview_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbb_preview_debug.pdb
new file mode 100644
index 000000000..6533d1a71
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbb_preview_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc.dll
new file mode 100644
index 000000000..306685ffa
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc.pdb
new file mode 100644
index 000000000..90f08ed27
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_debug.dll
new file mode 100644
index 000000000..ff6f074dc
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_debug.pdb
new file mode 100644
index 000000000..bc0eb9b91
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_proxy.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_proxy.dll
new file mode 100644
index 000000000..425a9253f
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_proxy.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_proxy.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_proxy.pdb
new file mode 100644
index 000000000..5fa965d81
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_proxy.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_proxy_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_proxy_debug.dll
new file mode 100644
index 000000000..363e82fe3
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_proxy_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_proxy_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_proxy_debug.pdb
new file mode 100644
index 000000000..5f5372212
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11/tbbmalloc_proxy_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/irml/irml.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/irml/irml.dll
new file mode 100644
index 000000000..7ad40de47
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/irml/irml.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/irml/irml.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/irml/irml.pdb
new file mode 100644
index 000000000..683cec08a
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/irml/irml.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/irml/irml_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/irml/irml_debug.dll
new file mode 100644
index 000000000..3245a00d6
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/irml/irml_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/irml/irml_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/irml/irml_debug.pdb
new file mode 100644
index 000000000..de2475052
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/irml/irml_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbb.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbb.dll
new file mode 100644
index 000000000..ecdac417b
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbb.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbb.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbb.pdb
new file mode 100644
index 000000000..bc56fca5b
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbb.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_debug.dll
new file mode 100644
index 000000000..a03820de7
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_debug.pdb
new file mode 100644
index 000000000..bbb6efa51
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_preview.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_preview.dll
new file mode 100644
index 000000000..acc060efe
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_preview.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_preview.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_preview.pdb
new file mode 100644
index 000000000..ea5ca1b20
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_preview.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_preview_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_preview_debug.dll
new file mode 100644
index 000000000..2b91f84ff
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_preview_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_preview_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_preview_debug.pdb
new file mode 100644
index 000000000..c7c3fb0ae
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbb_preview_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc.dll
new file mode 100644
index 000000000..51c6c506e
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc.pdb
new file mode 100644
index 000000000..e7e71a933
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_debug.dll
new file mode 100644
index 000000000..4f8641695
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_debug.pdb
new file mode 100644
index 000000000..b104d04f8
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_proxy.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_proxy.dll
new file mode 100644
index 000000000..ca969d06d
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_proxy.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_proxy.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_proxy.pdb
new file mode 100644
index 000000000..d5f657803
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_proxy.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_proxy_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_proxy_debug.dll
new file mode 100644
index 000000000..29429b521
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_proxy_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_proxy_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_proxy_debug.pdb
new file mode 100644
index 000000000..b9a26f4f4
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc11_ui/tbbmalloc_proxy_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/irml/irml.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/irml/irml.dll
new file mode 100644
index 000000000..3d0896dd6
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/irml/irml.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/irml/irml.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/irml/irml.pdb
new file mode 100644
index 000000000..eb697c15b
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/irml/irml.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/irml/irml_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/irml/irml_debug.dll
new file mode 100644
index 000000000..8ad61587d
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/irml/irml_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/irml/irml_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/irml/irml_debug.pdb
new file mode 100644
index 000000000..064aaca33
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/irml/irml_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbb.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbb.dll
new file mode 100644
index 000000000..fe0791c4b
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbb.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbb.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbb.pdb
new file mode 100644
index 000000000..ecc2c5aaa
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbb.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbb_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbb_debug.dll
new file mode 100644
index 000000000..0ca224674
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbb_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbb_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbb_debug.pdb
new file mode 100644
index 000000000..a769a9d40
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbb_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbb_preview.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbb_preview.dll
new file mode 100644
index 000000000..4f28657cf
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbb_preview.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbb_preview.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbb_preview.pdb
new file mode 100644
index 000000000..730ea4777
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbb_preview.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbb_preview_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbb_preview_debug.dll
new file mode 100644
index 000000000..6adce1521
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbb_preview_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbb_preview_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbb_preview_debug.pdb
new file mode 100644
index 000000000..2c07ae392
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbb_preview_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc.dll
new file mode 100644
index 000000000..6db435731
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc.pdb
new file mode 100644
index 000000000..9d54947ae
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_debug.dll
new file mode 100644
index 000000000..38c8011dd
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_debug.pdb
new file mode 100644
index 000000000..e9f2c34fe
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_proxy.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_proxy.dll
new file mode 100644
index 000000000..e25e4afbb
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_proxy.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_proxy.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_proxy.pdb
new file mode 100644
index 000000000..c99e559e0
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_proxy.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_proxy_debug.dll b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_proxy_debug.dll
new file mode 100644
index 000000000..583725fea
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_proxy_debug.dll differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_proxy_debug.pdb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_proxy_debug.pdb
new file mode 100644
index 000000000..c3115dfab
Binary files /dev/null and b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/intel64/vc9/tbbmalloc_proxy_debug.pdb differ
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/tbbvars.bat b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/tbbvars.bat
new file mode 100644
index 000000000..d61419a29
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/tbbvars.bat
@@ -0,0 +1,78 @@
+@echo off
+REM
+REM Copyright 2005-2013 Intel Corporation. All Rights Reserved.
+REM
+REM This file is part of Threading Building Blocks.
+REM
+REM Threading Building Blocks is free software; you can redistribute it
+REM and/or modify it under the terms of the GNU General Public License
+REM version 2 as published by the Free Software Foundation.
+REM
+REM Threading Building Blocks is distributed in the hope that it will be
+REM useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+REM of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+REM GNU General Public License for more details.
+REM
+REM You should have received a copy of the GNU General Public License
+REM along with Threading Building Blocks; if not, write to the Free Software
+REM Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+REM
+REM As a special exception, you may use this file as part of a free software
+REM library without restriction. Specifically, if other files instantiate
+REM templates or use macros or inline functions from this file, or you compile
+REM this file and link it with other files to produce an executable, this
+REM file does not by itself cause the resulting executable to be covered by
+REM the GNU General Public License. This exception does not however
+REM invalidate any other reasons why the executable file might be covered by
+REM the GNU General Public License.
+REM
+
+set SCRIPT_NAME=%~nx0
+if (%1) == () goto Syntax
+
+SET TBB_BIN_DIR=%~d0%~p0
+
+SET TBBROOT=%TBB_BIN_DIR%..
+
+:ParseArgs
+:: Parse the incoming arguments
+if /i "%1"=="" goto SetEnv
+if /i "%1"=="ia32" (set TBB_TARGET_ARCH=ia32) & shift & goto ParseArgs
+if /i "%1"=="intel64" (set TBB_TARGET_ARCH=intel64) & shift & goto ParseArgs
+if /i "%1"=="vs2005" (set TBB_TARGET_VS=vc8) & shift & goto ParseArgs
+if /i "%1"=="vs2008" (set TBB_TARGET_VS=vc9) & shift & goto ParseArgs
+if /i "%1"=="vs2010" (set TBB_TARGET_VS=vc10) & shift & goto ParseArgs
+if /i "%1"=="vs2012" (set TBB_TARGET_VS=vc11) & shift & goto ParseArgs
+if /i "%1"=="all" (set TBB_TARGET_VS=vc_mt) & shift & goto ParseArgs
+
+:SetEnv
+
+if ("%TBB_TARGET_VS%") == ("") set TBB_TARGET_VS=vc_mt
+
+SET TBB_ARCH_PLATFORM=%TBB_TARGET_ARCH%\%TBB_TARGET_VS%
+if exist "%TBB_BIN_DIR%\%TBB_ARCH_PLATFORM%\tbb.dll" SET PATH=%TBB_BIN_DIR%\%TBB_ARCH_PLATFORM%;%PATH%
+if exist "%TBBROOT%\..\redist\%TBB_TARGET_ARCH%\tbb\%TBB_TARGET_VS%\tbb.dll" SET PATH=%TBBROOT%\..\redist\%TBB_TARGET_ARCH%\tbb\%TBB_TARGET_VS%;%PATH%
+SET LIB=%TBBROOT%\lib\%TBB_ARCH_PLATFORM%;%LIB%
+SET INCLUDE=%TBBROOT%\include;%INCLUDE%
+IF ("%ICPP_COMPILER11%") NEQ ("") SET TBB_CXX=icl.exe
+IF ("%ICPP_COMPILER12%") NEQ ("") SET TBB_CXX=icl.exe
+IF ("%ICPP_COMPILER13%") NEQ ("") SET TBB_CXX=icl.exe
+goto End
+
+:Syntax
+echo Syntax:
+echo %SCRIPT_NAME% ^ ^
+echo ^ must be is one of the following
+echo ia32 : Set up for IA-32 architecture
+echo intel64 : Set up for Intel(R) 64 architecture
+echo ^ should be one of the following
+echo vs2005 : Set to use with Microsoft Visual Studio 2005 runtime DLLs
+echo vs2008 : Set to use with Microsoft Visual Studio 2008 runtime DLLs
+echo vs2010 : Set to use with Microsoft Visual Studio 2010 runtime DLLs
+echo vs2012 : Set to use with Microsoft Visual Studio 2012 runtime DLLs
+echo all : Set to use TBB statically linked with Microsoft Visual C++ runtime
+echo if ^ is not set TBB statically linked with Microsoft Visual C++ runtime will be used.
+exit /B 1
+
+:End
+exit /B 0
\ No newline at end of file
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/tbbvars.csh b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/tbbvars.csh
new file mode 100644
index 000000000..fe6888f3e
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/tbbvars.csh
@@ -0,0 +1,76 @@
+#!/bin/csh
+#
+# Copyright 2005-2013 Intel Corporation. All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction. Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License. This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+
+setenv TBBROOT "SUBSTITUTE_INSTALL_DIR_HERE"
+if ( "$1" != "ia32" && "$1" != "intel64" && "$1" != "android" ) then
+ echo "ERROR: Unknown switch '$1'. Accepted values: ia32, intel64, android"
+ exit 1
+endif
+
+if ( "$1" != "android" ) then
+ set gcc_version_full=`gcc --version | grep "gcc"| egrep -o " [0-9]+\.[0-9]+\.[0-9]+.*" | sed -e s/^\ //`
+ if ( $? == 0 ) then
+ set gcc_version=`echo "$gcc_version_full" | egrep -o "^[0-9]+\.[0-9]+\.[0-9]+"`
+ endif
+
+ switch ("$gcc_version")
+ case 4.[4-9]*:
+ set library_directory="gcc4.4"
+ breaksw
+ default:
+ set library_directory="gcc4.1"
+ breaksw
+ endsw
+else
+ set library_directory=""
+endif
+
+if (! $?MIC_LD_LIBRARY_PATH) then
+ setenv MIC_LD_LIBRARY_PATH "${TBBROOT}/lib/mic"
+else
+ setenv MIC_LD_LIBRARY_PATH "${TBBROOT}/lib/mic:$MIC_LD_LIBRARY_PATH"
+endif
+
+if (! $?LD_LIBRARY_PATH) then
+ setenv LD_LIBRARY_PATH "${TBBROOT}/lib/${1}/${library_directory}"
+else
+ setenv LD_LIBRARY_PATH "${TBBROOT}/lib/${1}/${library_directory}:$LD_LIBRARY_PATH"
+endif
+
+if (! $?LIBRARY_PATH) then
+ setenv LIBRARY_PATH "${TBBROOT}/lib/${1}/${library_directory}"
+else
+ setenv LIBRARY_PATH "${TBBROOT}/lib/${1}/${library_directory}:$LIBRARY_PATH"
+endif
+
+if (! $?CPATH) then
+ setenv CPATH "${TBBROOT}/include"
+else
+ setenv CPATH "${TBBROOT}/include:$CPATH"
+endif
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/tbbvars.sh b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/tbbvars.sh
new file mode 100644
index 000000000..aeb15ebe7
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/bin/tbbvars.sh
@@ -0,0 +1,80 @@
+#!/bin/bash
+#
+# Copyright 2005-2013 Intel Corporation. All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction. Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License. This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+
+function get_library_directory(){
+ gcc_version_full=`gcc --version | grep "gcc"| egrep -o " [0-9]+\.[0-9]+\.[0-9]+.*" | sed -e s/^\ //`
+ if [ $? -eq 0 ]; then
+ gcc_version=`echo "$gcc_version_full" | egrep -o "^[0-9]+\.[0-9]+\.[0-9]+"`
+ fi
+ case "${gcc_version}" in
+ 4.[4-9]* )
+ lib_dir="gcc4.4";;
+ * )
+ lib_dir="gcc4.1";;
+ esac
+ echo $lib_dir
+}
+
+export TBBROOT=SUBSTITUTE_INSTALL_DIR_HERE
+
+if [[ "$1" != "ia32" && "$1" != "intel64" && "$1" != "android" ]]; then
+ echo "ERROR: Unknown switch '$1'. Accepted values: ia32, intel64, android"
+ return 1;
+fi
+
+if [ "$1" != "android" ]; then
+ library_directory=$(get_library_directory)
+else
+ library_directory=""
+fi
+
+if [ -z "${MIC_LD_LIBRARY_PATH}" ] ; then
+ MIC_LD_LIBRARY_PATH="$TBBROOT/lib/mic"; export MIC_LD_LIBRARY_PATH
+else
+ MIC_LD_LIBRARY_PATH="$TBBROOT/lib/mic:${MIC_LD_LIBRARY_PATH}"; export MIC_LD_LIBRARY_PATH
+fi
+
+if [ -z "${LD_LIBRARY_PATH}" ] ; then
+ LD_LIBRARY_PATH="$TBBROOT/lib/$1/$library_directory"; export LD_LIBRARY_PATH
+else
+ LD_LIBRARY_PATH="$TBBROOT/lib/$1/$library_directory:${LD_LIBRARY_PATH}"; export LD_LIBRARY_PATH
+fi
+
+if [ -z "${LIBRARY_PATH}" ] ; then
+ LIBRARY_PATH="$TBBROOT/lib/$1/$library_directory"; export LIBRARY_PATH
+else
+ LIBRARY_PATH="$TBBROOT/lib/$1/$library_directory:${LIBRARY_PATH}"; export LIBRARY_PATH
+fi
+
+if [ -z "${CPATH}" ] ; then
+ CPATH="${TBBROOT}/include"; export CPATH
+else
+ CPATH="${TBBROOT}/include:$CPATH"; export CPATH
+fi
+
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/AIX.gcc.inc b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/AIX.gcc.inc
new file mode 100644
index 000000000..a5f610cac
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/AIX.gcc.inc
@@ -0,0 +1,85 @@
+# Copyright 2005-2013 Intel Corporation. All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction. Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License. This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+COMPILE_ONLY = -c -MMD
+PREPROC_ONLY = -E -x c++
+INCLUDE_KEY = -I
+DEFINE_KEY = -D
+OUTPUT_KEY = -o #
+OUTPUTOBJ_KEY = -o #
+PIC_KEY = -fPIC
+WARNING_AS_ERROR_KEY = -Werror
+WARNING_KEY = -Wall
+DYLIB_KEY = -shared
+LIBDL = -ldl
+
+TBB_NOSTRICT = 1
+
+CPLUS = g++
+CONLY = gcc
+LIB_LINK_FLAGS = -shared
+LIBS = -lpthread -ldl
+C_FLAGS = $(CPLUS_FLAGS) -x c
+
+ifeq ($(cfg), release)
+ CPLUS_FLAGS = -O2 -DUSE_PTHREAD -pthread
+endif
+ifeq ($(cfg), debug)
+ CPLUS_FLAGS = -DTBB_USE_DEBUG -g -O0 -DUSE_PTHREAD -pthread
+endif
+
+ASM=
+ASM_FLAGS=
+
+TBB_ASM.OBJ=
+
+ifeq (powerpc,$(arch))
+ CPLUS_FLAGS += -maix64 -Wl,-G
+ LIB_LINK_FLAGS += -maix64 -Wl,-b64 -Wl,-brtl -Wl,-G
+endif
+
+#------------------------------------------------------------------------------
+# Setting assembler data.
+#------------------------------------------------------------------------------
+
+ASSEMBLY_SOURCE=ibm_aix51
+ifeq (powerpc,$(arch))
+ TBB_ASM.OBJ = atomic_support.o
+endif
+
+#------------------------------------------------------------------------------
+# End of setting assembler data.
+#------------------------------------------------------------------------------
+
+#------------------------------------------------------------------------------
+# Setting tbbmalloc data.
+#------------------------------------------------------------------------------
+
+M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions -fno-schedule-insns2
+
+#------------------------------------------------------------------------------
+# End of setting tbbmalloc data.
+#------------------------------------------------------------------------------
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/AIX.inc b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/AIX.inc
new file mode 100644
index 000000000..7255de866
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/AIX.inc
@@ -0,0 +1,76 @@
+# Copyright 2005-2013 Intel Corporation. All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction. Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License. This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+ifndef arch
+ arch:=$(shell uname -p)
+ export arch
+endif
+
+ifndef runtime
+ gcc_version:=$(shell gcc -v 2>&1 | grep 'gcc version' | sed -e 's/^gcc version //' | sed -e 's/ .*$$//')
+ os_version:=$(shell uname -r)
+ os_kernel_version:=$(shell uname -r | sed -e 's/-.*$$//')
+ export runtime:=cc$(gcc_version)_kernel$(os_kernel_version)
+endif
+
+native_compiler := gcc
+export compiler ?= gcc
+debugger ?= gdb
+
+CMD=$(SHELL) -c
+CWD=$(shell pwd)
+RM?=rm -f
+RD?=rmdir
+MD?=mkdir -p
+NUL= /dev/null
+SLASH=/
+MAKE_VERSIONS=sh $(tbb_root)/build/version_info_aix.sh $(CPLUS) $(CPLUS_FLAGS) $(INCLUDES) >version_string.ver
+MAKE_TBBVARS=sh $(tbb_root)/build/generate_tbbvars.sh
+
+ifdef LIBPATH
+ export LIBPATH := .:$(LIBPATH)
+else
+ export LIBPATH := .
+endif
+
+####### Build settings ########################################################
+
+OBJ = o
+DLL = so
+
+TBB.LST =
+TBB.DEF =
+TBB.DLL = libtbb$(CPF_SUFFIX)$(DEBUG_SUFFIX).$(DLL)
+TBB.LIB = $(TBB.DLL)
+LINK_TBB.LIB = $(TBB.LIB)
+
+MALLOC.DLL = libtbbmalloc$(DEBUG_SUFFIX).$(DLL)
+MALLOC.LIB = $(MALLOC.DLL)
+LINK_MALLOC.LIB = $(MALLOC.LIB)
+
+TBB_NOSTRICT=1
+
+TEST_LAUNCHER=sh $(tbb_root)/build/test_launcher.sh $(largs)
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/FreeBSD.gcc.inc b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/FreeBSD.gcc.inc
new file mode 100644
index 000000000..da461ee25
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/FreeBSD.gcc.inc
@@ -0,0 +1,95 @@
+# Copyright 2005-2013 Intel Corporation. All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction. Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License. This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+COMPILE_ONLY = -c -MMD
+PREPROC_ONLY = -E -x c++
+INCLUDE_KEY = -I
+DEFINE_KEY = -D
+OUTPUT_KEY = -o #
+OUTPUTOBJ_KEY = -o #
+PIC_KEY = -fPIC
+WARNING_AS_ERROR_KEY = -Werror
+WARNING_KEY = -Wall
+DYLIB_KEY = -shared
+
+TBB_NOSTRICT = 1
+
+CPLUS = g++
+CONLY = gcc
+LIB_LINK_FLAGS = -shared
+LIBS = -lpthread
+C_FLAGS = $(CPLUS_FLAGS)
+
+ifeq ($(cfg), release)
+ CPLUS_FLAGS = -O2 -DUSE_PTHREAD
+endif
+ifeq ($(cfg), debug)
+ CPLUS_FLAGS = -DTBB_USE_DEBUG -g -O0 -DUSE_PTHREAD
+endif
+
+ASM=
+ASM_FLAGS=
+
+TBB_ASM.OBJ=
+MALLOC_ASM.OBJ=
+
+ifeq (ia64,$(arch))
+# Position-independent code (PIC) is a must on IA-64, even for regular (not shared) executables
+ CPLUS_FLAGS += $(PIC_KEY)
+endif
+
+ifeq (intel64,$(arch))
+ CPLUS_FLAGS += -m64
+ LIB_LINK_FLAGS += -m64
+endif
+
+ifeq (ia32,$(arch))
+ CPLUS_FLAGS += -m32
+ LIB_LINK_FLAGS += -m32
+endif
+
+#------------------------------------------------------------------------------
+# Setting assembler data.
+#------------------------------------------------------------------------------
+ASSEMBLY_SOURCE=$(arch)-gas
+ifeq (ia64,$(arch))
+ ASM=as
+ TBB_ASM.OBJ = atomic_support.o lock_byte.o log2.o pause.o
+ MALLOC_ASM.OBJ = atomic_support.o lock_byte.o pause.o
+endif
+#------------------------------------------------------------------------------
+# End of setting assembler data.
+#------------------------------------------------------------------------------
+
+#------------------------------------------------------------------------------
+# Setting tbbmalloc data.
+#------------------------------------------------------------------------------
+
+M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions -fno-schedule-insns2
+
+#------------------------------------------------------------------------------
+# End of setting tbbmalloc data.
+#------------------------------------------------------------------------------
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/FreeBSD.inc b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/FreeBSD.inc
new file mode 100644
index 000000000..2c1c66d3b
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/FreeBSD.inc
@@ -0,0 +1,84 @@
+# Copyright 2005-2013 Intel Corporation. All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction. Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License. This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+ifndef arch
+ ifeq ($(shell uname -m),i386)
+ export arch:=ia32
+ endif
+ ifeq ($(shell uname -m),ia64)
+ export arch:=ia64
+ endif
+ ifeq ($(shell uname -m),amd64)
+ export arch:=intel64
+ endif
+endif
+
+ifndef runtime
+ gcc_version:=$(shell gcc -v 2>&1 | grep 'gcc version' | sed -e 's/^gcc version //' | sed -e 's/ .*$$//')
+ os_version:=$(shell uname -r)
+ os_kernel_version:=$(shell uname -r | sed -e 's/-.*$$//')
+ export runtime:=cc$(gcc_version)_kernel$(os_kernel_version)
+endif
+
+native_compiler := gcc
+export compiler ?= gcc
+debugger ?= gdb
+
+CMD=$(SHELL) -c
+CWD=$(shell pwd)
+RM?=rm -f
+RD?=rmdir
+MD?=mkdir -p
+NUL= /dev/null
+SLASH=/
+MAKE_VERSIONS=sh $(tbb_root)/build/version_info_linux.sh $(CPLUS) $(CPLUS_FLAGS) $(INCLUDES) >version_string.ver
+MAKE_TBBVARS=sh $(tbb_root)/build/generate_tbbvars.sh
+
+ifdef LD_LIBRARY_PATH
+ export LD_LIBRARY_PATH := .:$(LD_LIBRARY_PATH)
+else
+ export LD_LIBRARY_PATH := .
+endif
+
+####### Build settings ########################################################
+
+OBJ = o
+DLL = so
+LIBEXT=so
+
+TBB.LST =
+TBB.DEF =
+TBB.DLL = libtbb$(CPF_SUFFIX)$(DEBUG_SUFFIX).$(DLL)
+TBB.LIB = $(TBB.DLL)
+LINK_TBB.LIB = $(TBB.LIB)
+
+MALLOC.DLL = libtbbmalloc$(DEBUG_SUFFIX).$(DLL)
+MALLOC.LIB = $(MALLOC.DLL)
+LINK_MALLOC.LIB = $(MALLOC.LIB)
+
+TBB_NOSTRICT=1
+
+TEST_LAUNCHER=sh $(tbb_root)/build/test_launcher.sh $(largs)
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/Makefile.rml b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/Makefile.rml
new file mode 100644
index 000000000..1f7ddbaaf
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/Makefile.rml
@@ -0,0 +1,161 @@
+# Copyright 2005-2013 Intel Corporation. All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction. Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License. This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+tbb_root ?= $(TBBROOT)
+BUILDING_PHASE=1
+TEST_RESOURCE = $(RML.RES)
+include $(tbb_root)/build/common.inc
+DEBUG_SUFFIX=$(findstring _debug,_$(cfg))
+
+# default target
+default_rml: rml rml_test
+
+RML_ROOT ?= $(tbb_root)/src/rml
+RML_SERVER_ROOT = $(RML_ROOT)/server
+
+VPATH = $(tbb_root)/src/tbb $(tbb_root)/src/tbb/$(ASSEMBLY_SOURCE)
+VPATH += $(RML_ROOT)/server $(RML_ROOT)/client $(RML_ROOT)/test $(tbb_root)/src/test
+
+include $(tbb_root)/build/common_rules.inc
+
+#--------------------------------------------------------------------------
+# Define rules for making the RML server shared library and client objects.
+#--------------------------------------------------------------------------
+
+# Object files that make up RML server
+RML_SERVER.OBJ = rml_server.$(OBJ)
+
+# Object files that RML clients need
+RML_TBB_CLIENT.OBJ ?= rml_tbb.$(OBJ) dynamic_link_rml.$(OBJ)
+RML_OMP_CLIENT.OBJ ?= rml_omp.$(OBJ) omp_dynamic_link.$(OBJ)
+
+RML.OBJ = $(RML_SERVER.OBJ) $(RML_TBB_CLIENT.OBJ) $(RML_OMP_CLIENT.OBJ)
+ifeq (windows,$(tbb_os))
+RML_ASM.OBJ = $(if $(findstring intel64,$(arch)),$(TBB_ASM.OBJ))
+endif
+ifeq (linux,$(tbb_os))
+RML_ASM.OBJ = $(if $(findstring ia64,$(arch)),$(TBB_ASM.OBJ))
+endif
+
+RML_TBB_DEP= cache_aligned_allocator_rml.$(OBJ) dynamic_link_rml.$(OBJ) concurrent_vector_rml.$(OBJ) semaphore_rml.$(OBJ) tbb_misc_rml.$(OBJ) tbb_misc_ex_rml.$(OBJ)
+TBB_DEP_NON_RML_TEST?= cache_aligned_allocator_rml.$(OBJ) dynamic_link_rml.$(OBJ) $(RML_ASM.OBJ) tbb_misc_rml.$(OBJ) tbb_misc_ex_rml.$(OBJ)
+ifeq ($(cfg),debug)
+RML_TBB_DEP+= spin_mutex_rml.$(OBJ)
+TBB_DEP_RML_TEST?= $(RML_ASM.OBJ) tbb_misc_rml.$(OBJ)
+else
+TBB_DEP_RML_TEST?= $(RML_ASM.OBJ)
+endif
+LIBS += $(LIBDL)
+
+INCLUDES += $(INCLUDE_KEY)$(RML_ROOT)/include $(INCLUDE_KEY).
+T_INCLUDES = $(INCLUDES) $(INCLUDE_KEY)$(tbb_root)/src/test $(INCLUDE_KEY)$(RML_SERVER_ROOT)
+
+# Suppress superfluous warnings for RML compilation
+R_CPLUS_FLAGS = $(subst DO_ITT_NOTIFY,DO_ITT_NOTIFY=0,$(CPLUS_FLAGS)) $(WARNING_SUPPRESS) \
+ $(DEFINE_KEY)TBB_USE_THREADING_TOOLS=0 $(DEFINE_KEY)__TBB_RML_STATIC=1 $(DEFINE_KEY)__TBB_NO_IMPLICIT_LINKAGE=1
+
+%.$(OBJ): %.cpp
+ $(CPLUS) $(COMPILE_ONLY) $(R_CPLUS_FLAGS) $(PIC_KEY) $(INCLUDES) $<
+
+ifeq (linux,$(tbb_os))
+omp_dynamic_link.$(OBJ): CPLUS_FLAGS+=-fno-exceptions
+endif
+
+tbb_misc_rml.$(OBJ): version_string.ver
+
+RML_TEST.OBJ = test_job_automaton.$(OBJ) test_thread_monitor.$(OBJ) test_rml_tbb.$(OBJ) test_rml_omp.$(OBJ) test_rml_mixed.$(OBJ)
+
+$(RML_TBB_DEP): %_rml.$(OBJ): %.cpp
+ $(CPLUS) $(COMPILE_ONLY) $(OUTPUTOBJ_KEY)$@ $(R_CPLUS_FLAGS) $(PIC_KEY) $(INCLUDES) $<
+
+$(RML_TEST.OBJ): %.$(OBJ): %.cpp
+ $(CPLUS) $(COMPILE_ONLY) $(R_CPLUS_FLAGS) $(PIC_KEY) $(T_INCLUDES) $<
+
+ifneq (,$(RML.DEF))
+rml.def: $(RML.DEF)
+ $(CPLUS) $(PREPROC_ONLY) $< $(CPLUS_FLAGS) $(INCLUDES) > $@
+
+LIB_LINK_FLAGS += $(EXPORT_KEY)rml.def
+$(RML.DLL): rml.def
+endif
+
+$(RML.DLL): BUILDING_LIBRARY = $(RML.DLL)
+$(RML.DLL): $(RML_TBB_DEP) $(RML_SERVER.OBJ) $(RML.RES) $(RML_NO_VERSION.DLL) $(RML_ASM.OBJ)
+ $(LIB_LINK_CMD) $(LIB_OUTPUT_KEY)$(RML.DLL) $(RML_SERVER.OBJ) $(RML_TBB_DEP) $(RML_ASM.OBJ) $(RML.RES) $(LIB_LINK_LIBS) $(LIB_LINK_FLAGS)
+
+ifneq (,$(RML_NO_VERSION.DLL))
+$(RML_NO_VERSION.DLL):
+ echo "INPUT ($(RML.DLL))" > $(RML_NO_VERSION.DLL)
+endif
+
+rml: $(RML.DLL) $(RML_TBB_CLIENT.OBJ) $(RML_OMP_CLIENT.OBJ)
+
+#------------------------------------------------------
+# End of rules for making the RML server shared library
+#------------------------------------------------------
+
+#------------------------------------------------------
+# Define rules for making the RML unit tests
+#------------------------------------------------------
+
+add_debug=$(basename $(1))_debug$(suffix $(1))
+cross_suffix=$(if $(crosstest),$(if $(DEBUG_SUFFIX),$(subst _debug,,$(1)),$(call add_debug,$(1))),$(1))
+
+RML_TESTS = test_job_automaton.$(TEST_EXT) test_thread_monitor.$(TEST_EXT) test_rml_tbb.$(TEST_EXT) test_rml_omp.$(TEST_EXT) test_rml_mixed.$(TEST_EXT) test_rml_omp_c_linkage.$(TEST_EXT)
+
+test_rml_tbb.$(TEST_EXT): test_rml_tbb.$(OBJ) $(RML_TBB_CLIENT.OBJ) $(TBB_DEP_RML_TEST)
+ $(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) test_rml_tbb.$(OBJ) $(RML_TBB_CLIENT.OBJ) $(TBB_DEP_RML_TEST) $(LIBS) $(LINK_FLAGS)
+
+test_rml_omp.$(TEST_EXT): test_rml_omp.$(OBJ) $(RML_OMP_CLIENT.OBJ) $(TBB_DEP_NON_RML_TEST)
+ $(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) test_rml_omp.$(OBJ) $(RML_OMP_CLIENT.OBJ) $(TBB_DEP_NON_RML_TEST) $(LIBS) $(LINK_FLAGS)
+
+test_rml_mixed.$(TEST_EXT): test_rml_mixed.$(OBJ) $(RML_TBB_CLIENT.OBJ) $(RML_OMP_CLIENT.OBJ) $(TBB_DEP_RML_TEST)
+ $(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) test_rml_mixed.$(OBJ) $(RML_TBB_CLIENT.OBJ) $(RML_OMP_CLIENT.OBJ) $(TBB_DEP_RML_TEST) $(LIBS) $(LINK_FLAGS)
+
+rml_omp_stub.$(OBJ): rml_omp_stub.cpp
+ $(CPLUS) $(COMPILE_ONLY) $(M_CPLUS_FLAGS) $(WARNING_SUPPRESS) $(T_INCLUDES) $(PIC_KEY) $<
+
+test_rml_omp_c_linkage.$(TEST_EXT): test_rml_omp_c_linkage.$(OBJ) rml_omp_stub.$(OBJ) omp_dynamic_link.$(OBJ)
+ $(CONLY) $(C_FLAGS) $(OUTPUT_KEY)$@ test_rml_omp_c_linkage.$(OBJ) rml_omp_stub.$(OBJ) omp_dynamic_link.$(OBJ) $(LIBS) $(LINK_FLAGS)
+
+test_%.$(TEST_EXT): test_%.$(OBJ) $(TBB_DEP_NON_RML_TEST)
+ $(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $< $(TBB_DEP_NON_RML_TEST) $(LIBS) $(LINK_FLAGS)
+
+### run_cmd is usually empty
+rml_test: $(call cross_suffix,$(RML.DLL)) $(TEST_PREREQUISITE) $(RML_TESTS)
+ $(run_cmd) ./test_job_automaton.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_thread_monitor.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_rml_tbb.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_rml_omp.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_rml_mixed.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_rml_omp_c_linkage.$(TEST_EXT) $(args)
+
+#------------------------------------------------------
+# End of rules for making the TBBMalloc unit tests
+#------------------------------------------------------
+
+# Include automatically generated dependences
+-include *.d
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/Makefile.tbb b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/Makefile.tbb
new file mode 100644
index 000000000..e38450478
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/Makefile.tbb
@@ -0,0 +1,134 @@
+# Copyright 2005-2013 Intel Corporation. All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction. Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License. This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+#------------------------------------------------------------------------------
+# Define rules for making the TBB shared library.
+#------------------------------------------------------------------------------
+
+tbb_root ?= "$(TBBROOT)"
+BUILDING_PHASE=1
+include $(tbb_root)/build/common.inc
+DEBUG_SUFFIX=$(findstring _debug,_$(cfg))
+
+#------------------------------------------------------------
+# Define static pattern rules dealing with .cpp source files
+#------------------------------------------------------------
+$(warning CONFIG: cfg=$(cfg) arch=$(arch) compiler=$(compiler) os=$(tbb_os) runtime=$(runtime))
+
+default_tbb: $(TBB.DLL)
+.PHONY: default_tbb tbbvars clean
+.PRECIOUS: %.$(OBJ)
+
+VPATH = $(tbb_root)/src/tbb/$(ASSEMBLY_SOURCE) $(tbb_root)/src/tbb $(tbb_root)/src/old $(tbb_root)/src/rml/client
+
+CPLUS_FLAGS += $(PIC_KEY) $(DEFINE_KEY)__TBB_BUILD=1
+
+# A template to switch off strict-ansi for certain compilation units
+# ifeq (1,$(TBB_NOSTRICT))
+# KNOWN_NOSTRICT =
+# endif
+
+# suppress warnings for build of itt_notify by GCC3
+ifneq (,$(findstring gcc_cc3., $(compiler)_$(runtime)))
+KNOWN_WARNINGS += itt_notify.$(OBJ)
+endif
+
+# Object files (that were compiled from C++ code) that gmake up TBB
+TBB_CPLUS.OBJ = concurrent_hash_map.$(OBJ) \
+ concurrent_queue.$(OBJ) \
+ concurrent_vector.$(OBJ) \
+ dynamic_link.$(OBJ) \
+ itt_notify.$(OBJ) \
+ cache_aligned_allocator.$(OBJ) \
+ pipeline.$(OBJ) \
+ queuing_mutex.$(OBJ) \
+ queuing_rw_mutex.$(OBJ) \
+ reader_writer_lock.$(OBJ) \
+ spin_rw_mutex.$(OBJ) \
+ spin_mutex.$(OBJ) \
+ critical_section.$(OBJ) \
+ task.$(OBJ) \
+ tbb_misc.$(OBJ) \
+ tbb_misc_ex.$(OBJ) \
+ mutex.$(OBJ) \
+ recursive_mutex.$(OBJ) \
+ condition_variable.$(OBJ) \
+ tbb_thread.$(OBJ) \
+ concurrent_monitor.$(OBJ) \
+ semaphore.$(OBJ) \
+ private_server.$(OBJ) \
+ rml_tbb.$(OBJ) \
+ task_group_context.$(OBJ) \
+ governor.$(OBJ) \
+ market.$(OBJ) \
+ arena.$(OBJ) \
+ scheduler.$(OBJ) \
+ observer_proxy.$(OBJ) \
+ tbb_statistics.$(OBJ) \
+ tbb_main.$(OBJ)
+
+# OLD/Legacy object files for backward binary compatibility
+ifeq (,$(findstring $(DEFINE_KEY)TBB_NO_LEGACY,$(CPLUS_FLAGS)))
+TBB_CPLUS_OLD.OBJ = \
+ concurrent_vector_v2.$(OBJ) \
+ concurrent_queue_v2.$(OBJ) \
+ spin_rw_mutex_v2.$(OBJ) \
+ task_v2.$(OBJ)
+endif
+
+# Object files that gmake up TBB (TBB_ASM.OBJ is platform-specific)
+TBB.OBJ = $(TBB_CPLUS.OBJ) $(TBB_CPLUS_OLD.OBJ) $(TBB_ASM.OBJ)
+
+# Suppress superfluous warnings for TBB compilation
+WARNING_KEY += $(WARNING_SUPPRESS)
+
+include $(tbb_root)/build/common_rules.inc
+
+ifneq (,$(TBB.DEF))
+tbb.def: $(TBB.DEF) $(TBB.LST)
+ $(CPLUS) $(PREPROC_ONLY) $< $(CPLUS_FLAGS) $(INCLUDES) > $@
+
+LIB_LINK_FLAGS += $(EXPORT_KEY)tbb.def
+$(TBB.DLL): tbb.def
+endif
+
+tbbvars.sh:
+ $(MAKE_TBBVARS)
+
+$(TBB.DLL): BUILDING_LIBRARY = $(TBB.DLL)
+$(TBB.DLL): $(TBB.OBJ) $(TBB.RES) tbbvars.sh $(TBB_NO_VERSION.DLL)
+ $(LIB_LINK_CMD) $(LIB_OUTPUT_KEY)$(TBB.DLL) $(TBB.OBJ) $(TBB.RES) $(LIB_LINK_LIBS) $(LIB_LINK_FLAGS)
+
+ifneq (,$(TBB_NO_VERSION.DLL))
+$(TBB_NO_VERSION.DLL):
+ echo "INPUT ($(TBB.DLL))" > $(TBB_NO_VERSION.DLL)
+endif
+
+#clean:
+# $(RM) *.$(OBJ) *.$(DLL) *.res *.map *.ilk *.pdb *.exp *.manifest *.tmp *.d core core.*[0-9][0-9] *.ver
+
+# Include automatically generated dependences
+-include *.d
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/Makefile.tbbmalloc b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/Makefile.tbbmalloc
new file mode 100644
index 000000000..49d6a97b0
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/Makefile.tbbmalloc
@@ -0,0 +1,218 @@
+# Copyright 2005-2013 Intel Corporation. All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction. Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License. This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# default target
+default_malloc: malloc malloc_test
+
+tbb_root ?= $(TBBROOT)
+BUILDING_PHASE=1
+TEST_RESOURCE = $(MALLOC.RES)
+include $(tbb_root)/build/common.inc
+DEBUG_SUFFIX=$(findstring _debug,_$(cfg))
+
+MALLOC_ROOT ?= $(tbb_root)/src/tbbmalloc
+MALLOC_SOURCE_ROOT ?= $(MALLOC_ROOT)
+
+VPATH = $(tbb_root)/src/tbb/$(ASSEMBLY_SOURCE) $(tbb_root)/src/tbb $(tbb_root)/src/test
+VPATH += $(MALLOC_ROOT) $(MALLOC_SOURCE_ROOT)
+
+CPLUS_FLAGS += $(if $(crosstest),$(DEFINE_KEY)__TBBMALLOC_NO_IMPLICIT_LINKAGE=1)
+
+include $(tbb_root)/build/common_rules.inc
+
+#------------------------------------------------------
+# Define rules for making the TBBMalloc shared library.
+#------------------------------------------------------
+
+# Object files that make up TBBMalloc
+MALLOC_CPLUS.OBJ = backend.$(OBJ) large_objects.$(OBJ) backref.$(OBJ) tbbmalloc.$(OBJ)
+MALLOC.OBJ := $(MALLOC_CPLUS.OBJ) $(MALLOC_ASM.OBJ) itt_notify_malloc.$(OBJ) frontend.$(OBJ)
+PROXY.OBJ := proxy.$(OBJ) tbb_function_replacement.$(OBJ)
+M_CPLUS_FLAGS := $(subst $(WARNING_KEY),,$(M_CPLUS_FLAGS)) $(DEFINE_KEY)__TBBMALLOC_BUILD=1
+M_INCLUDES = $(INCLUDES) $(INCLUDE_KEY)$(MALLOC_ROOT) $(INCLUDE_KEY)$(MALLOC_SOURCE_ROOT)
+
+# Suppress superfluous warnings for TBBmalloc compilation
+$(MALLOC.OBJ): M_CPLUS_FLAGS += $(WARNING_SUPPRESS)
+
+frontend.$(OBJ): frontend.cpp version_string.ver
+ $(CPLUS) $(COMPILE_ONLY) $(M_CPLUS_FLAGS) $(PIC_KEY) $(M_INCLUDES) $(INCLUDE_KEY). $<
+
+$(PROXY.OBJ): %.$(OBJ): %.cpp
+ $(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS) $(PIC_KEY) $(DEFINE_KEY)__TBBMALLOC_BUILD=1 $(M_INCLUDES) $<
+
+$(MALLOC_CPLUS.OBJ): %.$(OBJ): %.cpp
+ $(CPLUS) $(COMPILE_ONLY) $(M_CPLUS_FLAGS) $(PIC_KEY) $(M_INCLUDES) $<
+
+itt_notify_malloc.$(OBJ): itt_notify.cpp
+ $(CPLUS) $(COMPILE_ONLY) $(M_CPLUS_FLAGS) $(PIC_KEY) $(OUTPUTOBJ_KEY)$@ $(INCLUDES) $<
+
+MALLOC_LINK_FLAGS = $(LIB_LINK_FLAGS)
+PROXY_LINK_FLAGS = $(LIB_LINK_FLAGS)
+
+ifneq (,$(MALLOC.DEF))
+tbbmalloc.def: $(MALLOC.DEF)
+ $(CPLUS) $(PREPROC_ONLY) $< $(CPLUS_FLAGS) $(INCLUDES) > $@
+
+MALLOC_LINK_FLAGS += $(EXPORT_KEY)tbbmalloc.def
+$(MALLOC.DLL): tbbmalloc.def
+endif
+
+$(MALLOC.DLL): BUILDING_LIBRARY = $(MALLOC.DLL)
+$(MALLOC.DLL): $(MALLOC.OBJ) $(MALLOC.RES) $(MALLOC_NO_VERSION.DLL)
+ $(subst $(CPLUS),$(CONLY),$(LIB_LINK_CMD)) $(LIB_OUTPUT_KEY)$(MALLOC.DLL) $(MALLOC.OBJ) $(MALLOC.RES) $(LIB_LINK_LIBS) $(MALLOC_LINK_FLAGS)
+
+ifneq (,$(MALLOCPROXY.DEF))
+tbbmallocproxy.def: $(MALLOCPROXY.DEF)
+ $(CPLUS) $(PREPROC_ONLY) $< $(CPLUS_FLAGS) $(INCLUDES) > $@
+
+PROXY_LINK_FLAGS += $(EXPORT_KEY)tbbmallocproxy.def
+$(MALLOCPROXY.DLL): tbbmallocproxy.def
+endif
+
+ifneq (,$(MALLOCPROXY.DLL))
+$(MALLOCPROXY.DLL): BUILDING_LIBRARY = $(MALLOCPROXY.DLL)
+$(MALLOCPROXY.DLL): $(PROXY.OBJ) $(MALLOCPROXY_NO_VERSION.DLL) $(MALLOC.DLL) $(MALLOC.RES)
+ $(LIB_LINK_CMD) $(LIB_OUTPUT_KEY)$(MALLOCPROXY.DLL) $(PROXY.OBJ) $(MALLOC.RES) $(LIB_LINK_LIBS) $(LINK_MALLOC_LIB) $(PROXY_LINK_FLAGS)
+endif
+
+ifneq (,$(MALLOC_NO_VERSION.DLL))
+$(MALLOC_NO_VERSION.DLL):
+ echo "INPUT ($(MALLOC.DLL))" > $(MALLOC_NO_VERSION.DLL)
+endif
+
+ifneq (,$(MALLOCPROXY_NO_VERSION.DLL))
+$(MALLOCPROXY_NO_VERSION.DLL):
+ echo "INPUT ($(MALLOCPROXY.DLL))" > $(MALLOCPROXY_NO_VERSION.DLL)
+endif
+
+malloc: $(MALLOC.DLL) $(MALLOCPROXY.DLL)
+
+malloc_dll: $(MALLOC.DLL)
+
+malloc_proxy_dll: $(MALLOCPROXY.DLL)
+
+.PHONY: malloc malloc_dll malloc_proxy_dll
+
+#------------------------------------------------------
+# End of rules for making the TBBMalloc shared library
+#------------------------------------------------------
+
+#------------------------------------------------------
+# Define rules for making the TBBMalloc unit tests
+#------------------------------------------------------
+
+add_debug=$(basename $(1))_debug$(suffix $(1))
+cross_suffix=$(if $(crosstest),$(if $(DEBUG_SUFFIX),$(subst _debug,,$(1)),$(call add_debug,$(1))),$(1))
+
+MALLOC_MAIN_TESTS = test_ScalableAllocator.$(TEST_EXT) \
+ test_ScalableAllocator_STL.$(TEST_EXT) \
+ test_malloc_compliance.$(TEST_EXT) \
+ test_malloc_regression.$(TEST_EXT) \
+ test_malloc_init_shutdown.$(TEST_EXT) \
+ test_malloc_pools.$(TEST_EXT)
+MALLOC_OVERLOAD_TESTS = test_malloc_overload.$(TEST_EXT) test_malloc_overload_proxy.$(TEST_EXT) test_malloc_atexit.$(TEST_EXT)
+
+MALLOC_LIB ?= $(call cross_suffix,$(MALLOC.LIB))
+MALLOC_PROXY_LIB ?= $(call cross_suffix,$(MALLOCPROXY.LIB))
+LINK_MALLOC_LIB ?= $(call cross_suffix,$(LINK_MALLOC.LIB))
+LINK_MALLOC_PROXY_LIB ?= $(call cross_suffix,$(LINK_MALLOCPROXY.LIB))
+
+ifeq (windows.gcc,$(tbb_os).$(compiler))
+test_malloc_overload.$(TEST_EXT): LIBS += $(MALLOC_PROXY_LIB)
+endif
+
+# on Ubuntu 11.10 linker called with --as-needed, so dependence on libtbbmalloc_proxy
+# is not created, and malloc overload via linking with -ltbbmalloc_proxy is not working.
+# Overcome with --no-as-needed.
+ifeq (linux.gcc,$(tbb_os).$(compiler))
+test_malloc_atexit.$(TEST_EXT): MALLOC_PROXY_LIB := -Wl,--no-as-needed $(MALLOC_PROXY_LIB)
+endif
+
+test_malloc_overload.$(TEST_EXT): test_malloc_overload.cpp
+ $(CPLUS) $(OUTPUT_KEY)$@ $(subst /MT,/MD,$(M_CPLUS_FLAGS)) $(M_INCLUDES) $< $(LIBDL) $(LIBS) $(LINK_FLAGS)
+test_malloc_overload_proxy.$(TEST_EXT): test_malloc_overload.cpp $(MALLOC_PROXY_LIB)
+ $(CPLUS) $(OUTPUT_KEY)$@ $(subst /MT,/MD,$(M_CPLUS_FLAGS)) $(M_INCLUDES) $< $(LIBDL) $(MALLOC_PROXY_LIB) $(LIBS) $(LINK_FLAGS)
+
+test_malloc_whitebox.$(TEST_EXT): test_malloc_whitebox.cpp $(MALLOC_ASM.OBJ) version_string.ver
+ $(CPLUS) $(OUTPUT_KEY)$@ $(M_CPLUS_FLAGS) $(M_INCLUDES) $(INCLUDE_KEY). $< $(MALLOC_ASM.OBJ) $(LIBS) $(LIBDL) $(LINK_FLAGS)
+
+test_malloc_lib_unload.$(TEST_EXT): test_malloc_lib_unload.cpp test_malloc_lib_unload_dll.$(DLL)
+ $(CPLUS) $(OUTPUT_KEY)$@ $(M_CPLUS_FLAGS) $(M_INCLUDES) $< $(LIBS) test_malloc_lib_unload_dll.$(LIBEXT) $(LIBDL) $(LINK_FLAGS)
+
+# TODO: use generic rules
+test_malloc_used_by_lib.$(TEST_EXT): test_malloc_used_by_lib.cpp test_malloc_used_by_lib.$(DLL)
+ $(CPLUS) $(OUTPUT_KEY)$@ $(M_CPLUS_FLAGS) $(M_INCLUDES) $< $(LIBS) $(LIBDL) $(LINK_FLAGS)
+
+test_malloc_used_by_lib.$(DLL): test_malloc_used_by_lib.cpp $(MALLOC_LIB)
+ $(CPLUS) $(OUTPUT_KEY)$@ $(subst /MT,/LD,$(M_CPLUS_FLAGS)) $(PIC_KEY) $(M_INCLUDES) $(DEFINE_KEY)_USRDLL $< $(LINK_MALLOC_LIB) $(LINK_FLAGS) $(DYLIB_KEY)
+
+$(MALLOC_MAIN_TESTS): %.$(TEST_EXT): %.$(OBJ) $(MALLOC_LIB)
+ $(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $< $(LINK_MALLOC_LIB) $(LIBS) $(LINK_FLAGS)
+
+MALLOC_C_TESTS = test_malloc_pure_c.$(TEST_EXT)
+
+$(MALLOC_C_TESTS): %.$(TEST_EXT): %.$(OBJ) $(MALLOC_LIB)
+ $(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $^ $(LINK_MALLOC_LIB) $(LIBS) $(LINK_FLAGS)
+
+# Rules for generating a test DLL
+%_dll.$(DLL): %_dll.$(OBJ)
+ $(LIB_LINK_CMD) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $(PIC_KEY) $< $(LIBS) $(LIBDL) $(LINK_FLAGS) $(DYLIB_KEY)
+.PRECIOUS: %_dll.$(OBJ)
+
+test_malloc_atexit.$(TEST_EXT): test_malloc_atexit.$(OBJ) test_malloc_atexit_dll.$(DLL) $(MALLOC_LIB)
+ $(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $< $(MALLOC_PROXY_LIB) $(LINK_MALLOC_LIB) test_malloc_atexit_dll.$(LIBEXT) $(LIBS) $(LINK_FLAGS)
+
+MALLOC_TESTS = $(MALLOC_MAIN_TESTS) $(MALLOC_C_TESTS) test_malloc_whitebox.$(TEST_EXT) test_malloc_used_by_lib.$(TEST_EXT)
+ifneq (,$(MALLOCPROXY.DLL))
+MALLOC_TESTS += $(MALLOC_OVERLOAD_TESTS) test_malloc_lib_unload.$(TEST_EXT)
+endif
+
+# run_cmd is usually empty
+malloc_test: $(call cross_suffix,$(MALLOC.DLL)) malloc_test_no_depends
+
+malloc_test_no_depends: $(TEST_PREREQUISITE) $(MALLOC_TESTS)
+ $(run_cmd) ./test_malloc_pools.$(TEST_EXT) $(args) 1:4
+ifneq (,$(MALLOCPROXY.DLL))
+ $(run_cmd) ./test_malloc_atexit.$(TEST_EXT) $(args)
+ $(run_cmd) $(TEST_LAUNCHER) test_malloc_lib_unload.$(TEST_EXT) $(args)
+ $(run_cmd) $(TEST_LAUNCHER) -l $(call cross_suffix,$(MALLOCPROXY.DLL)) test_malloc_overload.$(TEST_EXT) $(args)
+ $(run_cmd) $(TEST_LAUNCHER) test_malloc_overload_proxy.$(TEST_EXT) $(args)
+endif
+ $(run_cmd) ./test_malloc_used_by_lib.$(TEST_EXT)
+ $(run_cmd) ./test_malloc_whitebox.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) $(TEST_LAUNCHER) -u test_malloc_compliance.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_ScalableAllocator.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_ScalableAllocator_STL.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_malloc_regression.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_malloc_init_shutdown.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_malloc_pure_c.$(TEST_EXT) $(args)
+
+#------------------------------------------------------
+# End of rules for making the TBBMalloc unit tests
+#------------------------------------------------------
+
+# Include automatically generated dependences
+-include *.d
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/Makefile.tbbproxy b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/Makefile.tbbproxy
new file mode 100644
index 000000000..c8ae8450d
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/Makefile.tbbproxy
@@ -0,0 +1,117 @@
+# Copyright 2005-2013 Intel Corporation. All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction. Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License. This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# default target
+default_tbbproxy: tbbproxy tbbproxy_test
+
+tbb_root ?= $(TBBROOT)
+BUILDING_PHASE=1
+include $(tbb_root)/build/common.inc
+DEBUG_SUFFIX=$(findstring _debug,_$(cfg))
+
+PROXY_ROOT ?= $(tbb_root)/src/tbbproxy
+PROXY_SOURCE_ROOT ?= $(PROXY_ROOT)
+
+VPATH = $(tbb_root)/src/tbb/$(ASSEMBLY_SOURCE) $(tbb_root)/src/tbb $(tbb_root)/src/test
+VPATH += $(PROXY_ROOT) $(PROXY_SOURCE_ROOT)
+
+CPLUS_FLAGS += $(DEFINE_KEY)__TBB_DLL_NAME=$(TBB.DLL)
+CPLUS_FLAGS += $(DEFINE_KEY)__TBB_LST=$(TBB.LST)
+CPLUS_FLAGS += $(foreach dir,$(VPATH),$(INCLUDE_KEY)$(dir))
+CPLUS_FLAGS += $(PIC_KEY)
+
+include $(tbb_root)/build/common_rules.inc
+
+#------------------------------------------------------
+# Define rules for making the TBB Proxy static library.
+#------------------------------------------------------
+
+# Object files that make up TBB Proxy
+PROXY_CPLUS.OBJ = tbbproxy.$(OBJ)
+PROXY_ASM.OBJ = tbbproxy-asm.$(OBJ)
+PROXY.OBJ := $(PROXY_CPLUS.OBJ) $(PROXY_ASM.OBJ)
+
+# Not using intrinsics prevents undesired dependence from ICL libraries (e.g. libirc).
+# Not using default libs prevents link issues caused by different CRT versions in tbbproxy and in an app.
+$(PROXY.OBJ): CPLUS_FLAGS += $(DEFINE_KEY)ARCH_$(arch) $(DEFINE_KEY)OS_$(tbb_os) $(NOINTRINSIC_KEY) $(NODEFAULTLIB_KEY)
+
+$(PROXY_CPLUS.OBJ): CPLUS_FLAGS+=$(if $(filter windows.%cl,$(tbb_os).$(compiler)),/Fdtbbproxy$(DEBUG_SUFFIX).pdb)
+$(PROXY_CPLUS.OBJ): %.$(OBJ): %.cpp
+ $(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS) $(INCLUDES) $<
+
+$(PROXY.LIB): $(PROXY.OBJ)
+ $(AR) $(AR_FLAGS) $(AR_OUTPUT_KEY)$@ $^
+
+.PRECIOUS : %.$(ASMEXT)
+tbbproxy-asm.$(ASMEXT) : tbbproxy-$(tbb_os).$(ASMEXT) $(TBB.LST) $(TBB-OBJECTS.LST)
+ $(CPLUS) $(PREPROC_ONLY) $< $(INCLUDES) $(CPLUS_FLAGS) > $@
+
+.PHONY: tbbproxy
+ifeq (windows,$(tbb_os))
+tbbproxy: $(PROXY.LIB)
+else
+tbbproxy:
+endif
+
+#------------------------------------------------------
+# End of rules for making the TBB Proxy static library
+#------------------------------------------------------
+
+#------------------------------------------------------
+# Define rules for making the TBB Proxy unit tests
+#------------------------------------------------------
+
+add_debug=$(basename $(1))_debug$(suffix $(1))
+cross_suffix=$(if $(crosstest),$(if $(DEBUG_SUFFIX),$(subst _debug,,$(1)),$(call add_debug,$(1))),$(1))
+
+PROXY_LIB = $(call cross_suffix,$(PROXY.LIB))
+PROXY_TESTS_SRCS = test_runtime_loader.cpp
+PROXY_TESTS_OBJS = $(PROXY_TESTS_SRCS:.cpp=.$(OBJ))
+PROXY_TESTS_EXES = $(PROXY_TESTS_OBJS:.$(OBJ)=.$(TEST_EXT))
+
+# Run rules.
+.PHONY: tbbproxy_test
+ifeq (windows,$(tbb_os))
+tbbproxy_test: $(call cross_suffix,$(PROXY.LIB)) $(TEST_PREREQUISITE) $(PROXY_TESTS_EXES)
+ $(run_cmd) ./test_runtime_loader.$(TEST_EXT) $(args)
+else
+tbbproxy_test:
+endif
+
+# Link rules.
+$(PROXY_TESTS_EXES): %.$(TEST_EXT): %.$(OBJ) $(PROXY_LIB)
+ $(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $< $(PROXY_LIB) $(LIBS) $(LIBDL) $(LINK_FLAGS)
+
+# Compilation rules.
+$(PROXY_TESTS_OBJS): %.$(OBJ): %.cpp
+ $(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(CXX_WARN_SUPPRESS) $(INCLUDES) $(OUTPUT_KEY)$@ $<
+
+#------------------------------------------------------
+# End of rules for making the TBB Proxy unit tests
+#------------------------------------------------------
+
+# Include automatically generated dependences
+-include *.d
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/Makefile.test b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/Makefile.test
new file mode 100644
index 000000000..b3f272828
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/Makefile.test
@@ -0,0 +1,387 @@
+# Copyright 2005-2013 Intel Corporation. All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction. Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License. This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+#------------------------------------------------------------------------------
+# Define rules for making the TBB tests.
+#------------------------------------------------------------------------------
+.PHONY: default test_tbb_plain test_tbb_openmp test_tbb_cilk test_tbb_old clean
+
+default: test_tbb_plain test_tbb_openmp test_tbb_cilk test_tbb_old
+
+tbb_root ?= $(TBBROOT)
+BUILDING_PHASE=1
+TEST_RESOURCE = $(TBB.RES)
+include $(tbb_root)/build/common.inc
+DEBUG_SUFFIX=$(findstring _debug,$(call cross_cfg,_$(cfg)))
+
+#------------------------------------------------------------
+# Define static pattern rules dealing with .cpp source files
+#------------------------------------------------------------
+
+VPATH = $(tbb_root)/src/tbb/$(ASSEMBLY_SOURCE) $(tbb_root)/src/tbb $(tbb_root)/src/rml/client $(tbb_root)/src/old $(tbb_root)/src/test $(tbb_root)/src/perf
+
+CPLUS_FLAGS += $(if $(crosstest),$(DEFINE_KEY)__TBB_NO_IMPLICIT_LINKAGE=1)
+ifdef use_proxy
+ USE_PROXY_FLAG = $(DEFINE_KEY)HARNESS_USE_PROXY
+ CPLUS_FLAGS += $(USE_PROXY_FLAG)
+ LINK_TBB.LIB = $(PROXY.LIB)
+ LIBS += $(LIBDL)
+endif
+
+include $(tbb_root)/build/common_rules.inc
+
+# Rule for generating executable test
+%.$(TEST_EXT): %.$(OBJ) $(TBB.LIB) $(if $(use_proxy),$(LINK_TBB.LIB))
+ $(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $< $(LINK_TBB.LIB) $(LIBS) $(AUX_LIBS) $(LINK_FLAGS)
+
+# Rules for generating a test DLL
+%_dll.$(DLL): %_dll.$(OBJ) $(TBB.LIB)
+ $(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $(PIC_KEY) $< $(LINK_TBB.LIB) $(LIBS) $(LINK_FLAGS) $(DYLIB_KEY)
+.PRECIOUS: %_dll.$(OBJ) %_dll.$(DLL)
+
+# Rules for the tests, which use TBB in a dynamically loadable library
+test_model_plugin.$(TEST_EXT): CPLUS_FLAGS := $(CPLUS_FLAGS:$(USE_PROXY_FLAG)=)
+test_model_plugin.$(TEST_EXT): test_model_plugin.$(OBJ) test_model_plugin_dll.$(DLL)
+ $(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $< $(LIBDL) $(LIBS) $(LINK_FLAGS)
+
+# tbb_misc.$(OBJ) has to be specified here (instead of harness_inject_scheduler.h) because it carries dependency on version_string.ver
+SCHEDULER_DEPENDENCIES = $(TBB_ASM.OBJ) tbb_misc.$(OBJ)
+
+# These executables don't depend on the TBB library, but include core .cpp files directly
+SCHEDULER_DIRECTLY_INCLUDED = test_task_leaks.$(TEST_EXT) \
+ test_task_assertions.$(TEST_EXT) \
+ test_fast_random.$(TEST_EXT)
+
+# Necessary to locate version_string.ver referenced from directly included tbb_misc.cpp
+INCLUDES += $(INCLUDE_KEY).
+
+$(SCHEDULER_DIRECTLY_INCLUDED): WARNING_KEY += $(WARNING_SUPPRESS)
+
+$(SCHEDULER_DIRECTLY_INCLUDED): %.$(TEST_EXT) : %.$(OBJ) $(SCHEDULER_DEPENDENCIES)
+ $(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $^ $(LIBDL) $(LIBS) $(LINK_FLAGS)
+
+# Tests that use some features of C++11
+TEST_TBB_CPP11 = test_lambda.$(TEST_EXT) test_cache_aligned_allocator_STL.$(TEST_EXT)
+
+$(TEST_TBB_CPP11:%.$(TEST_EXT)=%.$(OBJ)): %.$(OBJ): %.cpp
+ $(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS) $(CPP11_FLAGS) $(CXX_ONLY_FLAGS) $(CXX_WARN_SUPPRESS) $(INCLUDES) $<
+$(TEST_TBB_CPP11): %.$(TEST_EXT): %.$(OBJ) $(TBB.LIB) $(if $(use_proxy),$(LINK_TBB.LIB))
+ $(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $(CPP11_FLAGS) $< $(LINK_TBB.LIB) $(LIBS) $(AUX_LIBS) $(LINK_FLAGS)
+
+# test_tbb_header detects "multiple definition" linker error using the test that covers the whole library
+TWICE_LINKED_TESTS = test_tbb_header.$(TEST_EXT) \
+ test_concurrent_unordered.$(TEST_EXT)
+
+%_secondary.$(OBJ): CPLUS_FLAGS+=$(DEFINE_KEY)__TBB_TEST_SECONDARY=1
+%_secondary.$(OBJ): %.cpp
+ $(CPLUS) $(OUTPUTOBJ_KEY)$@ $(COMPILE_ONLY) $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(CXX_WARN_SUPPRESS) $(INCLUDES) $<
+
+$(TWICE_LINKED_TESTS): %.$(TEST_EXT): %.$(OBJ) %_secondary.$(OBJ) $(TBB.LIB)
+ $(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $*.$(OBJ) $*_secondary.$(OBJ) $(LINK_TBB.LIB) $(LIBS) $(AUX_LIBS) $(LINK_FLAGS)
+
+# Checks that TBB atomics work correctly in position independent code
+test_atomic_pic.$(TEST_EXT): test_atomic.cpp
+ $(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $(PIC_KEY) $(CXX_ONLY_FLAGS) $(CXX_WARN_SUPPRESS) $(INCLUDES) $(DEFINE_KEY)__TBB_TEST_PIC=1 $< $(LINK_TBB.LIB) $(LIBS) $(AUX_LIBS) $(LINK_FLAGS)
+
+#Test of generic gcc port and icc intrinsics port
+%_compiler_builtins.$(TEST_EXT): CPLUS_FLAGS+=$(DEFINE_KEY)__TBB_TEST_BUILTINS=1
+%_compiler_builtins.$(TEST_EXT): %.cpp
+ $(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(CXX_WARN_SUPPRESS) $(INCLUDES) $< $(LIBS) $(AUX_LIBS) $(LINK_FLAGS)
+
+# The main list of TBB tests
+TEST_TBB_PLAIN.EXE = test_assembly.$(TEST_EXT) \
+ test_tbb_fork.$(TEST_EXT) \
+ test_assembly_compiler_builtins.$(TEST_EXT) \
+ test_aligned_space.$(TEST_EXT) \
+ test_atomic.$(TEST_EXT) \
+ test_atomic_pic.$(TEST_EXT) \
+ test_atomic_compiler_builtins.$(TEST_EXT) \
+ test_blocked_range.$(TEST_EXT) \
+ test_blocked_range2d.$(TEST_EXT) \
+ test_blocked_range3d.$(TEST_EXT) \
+ test_concurrent_queue.$(TEST_EXT) \
+ test_concurrent_vector.$(TEST_EXT) \
+ test_concurrent_unordered.$(TEST_EXT) \
+ test_concurrent_hash_map.$(TEST_EXT) \
+ test_enumerable_thread_specific.$(TEST_EXT) \
+ test_handle_perror.$(TEST_EXT) \
+ test_halt.$(TEST_EXT) \
+ test_model_plugin.$(TEST_EXT) \
+ test_mutex.$(TEST_EXT) \
+ test_mutex_native_threads.$(TEST_EXT) \
+ test_rwm_upgrade_downgrade.$(TEST_EXT) \
+ test_cache_aligned_allocator.$(TEST_EXT) \
+ test_parallel_for.$(TEST_EXT) \
+ test_parallel_reduce.$(TEST_EXT) \
+ test_parallel_sort.$(TEST_EXT) \
+ test_parallel_scan.$(TEST_EXT) \
+ test_parallel_while.$(TEST_EXT) \
+ test_parallel_do.$(TEST_EXT) \
+ test_pipeline.$(TEST_EXT) \
+ test_pipeline_with_tbf.$(TEST_EXT) \
+ test_parallel_pipeline.$(TEST_EXT) \
+ test_task_scheduler_init.$(TEST_EXT) \
+ test_task_scheduler_observer.$(TEST_EXT) \
+ test_task.$(TEST_EXT) \
+ test_tbb_thread.$(TEST_EXT) \
+ test_std_thread.$(TEST_EXT) \
+ test_tick_count.$(TEST_EXT) \
+ test_inits_loop.$(TEST_EXT) \
+ test_yield.$(TEST_EXT) \
+ test_eh_tasks.$(TEST_EXT) \
+ test_eh_algorithms.$(TEST_EXT) \
+ test_eh_flow_graph.$(TEST_EXT) \
+ test_parallel_invoke.$(TEST_EXT) \
+ test_task_group.$(TEST_EXT) \
+ test_ittnotify.$(TEST_EXT) \
+ test_parallel_for_each.$(TEST_EXT) \
+ test_tbb_header.$(TEST_EXT) \
+ test_combinable.$(TEST_EXT) \
+ test_task_auto_init.$(TEST_EXT) \
+ test_task_arena.$(TEST_EXT) \
+ test_concurrent_monitor.$(TEST_EXT) \
+ test_semaphore.$(TEST_EXT) \
+ test_critical_section.$(TEST_EXT) \
+ test_reader_writer_lock.$(TEST_EXT) \
+ test_tbb_condition_variable.$(TEST_EXT) \
+ test_intrusive_list.$(TEST_EXT) \
+ test_concurrent_priority_queue.$(TEST_EXT) \
+ test_task_priority.$(TEST_EXT) \
+ test_task_enqueue.$(TEST_EXT) \
+ test_task_steal_limit.$(TEST_EXT) \
+ test_hw_concurrency.$(TEST_EXT) \
+ test_fp.$(TEST_EXT) \
+ test_flow_graph.$(TEST_EXT) \
+ test_broadcast_node.$(TEST_EXT) \
+ test_continue_node.$(TEST_EXT) \
+ test_function_node.$(TEST_EXT) \
+ test_limiter_node.$(TEST_EXT) \
+ test_join_node.$(TEST_EXT) \
+ test_buffer_node.$(TEST_EXT) \
+ test_queue_node.$(TEST_EXT) \
+ test_priority_queue_node.$(TEST_EXT) \
+ test_sequencer_node.$(TEST_EXT) \
+ test_source_node.$(TEST_EXT) \
+ test_overwrite_node.$(TEST_EXT) \
+ test_write_once_node.$(TEST_EXT) \
+ test_or_node.$(TEST_EXT) \
+ test_multifunction_node.$(TEST_EXT) \
+ test_split_node.$(TEST_EXT) \
+ test_static_assert.$(TEST_EXT) \
+ test_tbb_version.$(TEST_EXT) # insert new files right above
+
+TEST_TBB_PLAIN.EXE += $(TEST_TBB_CPP11)
+
+ifdef OPENMP_FLAG
+test_openmp.$(TEST_EXT): test_openmp.cpp
+ $(CPLUS) $(OPENMP_FLAG) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $(INCLUDES) $< $(LIBS) $(LINK_TBB.LIB) $(LINK_FLAGS)
+test_tbb_openmp: $(TEST_PREREQUISITE) test_openmp.$(TEST_EXT)
+ $(run_cmd) ./test_openmp.$(TEST_EXT) 1:4
+else
+test_tbb_openmp:
+ @echo "OpenMP is not available"
+endif
+
+ifdef CILK_AVAILABLE
+test_cilk_dynamic_load.$(TEST_EXT): test_cilk_dynamic_load.$(OBJ) test_cilk_dynamic_load_dll.$(DLL)
+ $(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $< $(LINK_TBB.LIB) $(LIBDL) $(LIBS) $(LINK_FLAGS)
+# Workaround on cilkrts linkage known issue (see Intel(R) C++ Composer XE 2011 Release Notes)
+# The issue reveals itself if a version of binutils is prior to 2.17
+ifeq (linux_icc,$(tbb_os)_$(compiler))
+test_cilk_interop.$(TEST_EXT): LIBS += -lcilkrts
+endif
+test_tbb_cilk: test_cilk_interop.$(TEST_EXT) test_cilk_dynamic_load.$(TEST_EXT)
+ $(run_cmd) ./test_cilk_interop.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_cilk_dynamic_load.$(TEST_EXT) $(args)
+else
+test_tbb_cilk:
+ @echo "Intel(R) Cilk Plus is not available"
+endif
+
+$(TEST_TBB_PLAIN.EXE): WARNING_KEY += $(TEST_WARNING_KEY)
+
+# Run tests that are in SCHEDULER_DIRECTLY_INCLUDED and TEST_TBB_PLAIN.EXE
+# Note that usually run_cmd is empty, and tests run directly
+test_tbb_plain: $(TEST_PREREQUISITE) $(SCHEDULER_DIRECTLY_INCLUDED) $(TEST_TBB_PLAIN.EXE)
+ $(run_cmd) ./test_tbb_version.$(TEST_EXT) $(args)
+ # Checking TBB version first to make sure the following testing has anything in it
+ $(run_cmd) ./test_assembly.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_atomic.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_atomic_pic.$(TEST_EXT) $(args)
+ # Yes, 4:8 is intended on the next line.
+ $(run_cmd) ./test_yield.$(TEST_EXT) $(args) 4:8
+ $(run_cmd) ./test_handle_perror.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_task_auto_init.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_task_arena.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_task_scheduler_init.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_task_scheduler_observer.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_task.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_task_assertions.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_task_leaks.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_fast_random.$(TEST_EXT) $(args) 1:16
+ $(run_cmd) ./test_eh_tasks.$(TEST_EXT) $(args) 2:4
+ $(run_cmd) ./test_cache_aligned_allocator.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_cache_aligned_allocator_STL.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_blocked_range.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_blocked_range2d.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_blocked_range3d.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_parallel_for.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_parallel_sort.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_aligned_space.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_parallel_reduce.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_parallel_scan.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_parallel_while.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_parallel_do.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_inits_loop.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_lambda.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_mutex.$(TEST_EXT) $(args) 1:3
+ $(run_cmd) ./test_mutex_native_threads.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_rwm_upgrade_downgrade.$(TEST_EXT) $(args) 4
+ # Yes, 4:8 is intended on the next line.
+ $(run_cmd) ./test_halt.$(TEST_EXT) $(args) 4:8
+ $(run_cmd) ./test_pipeline.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_pipeline_with_tbf.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_parallel_pipeline.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_tick_count.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_concurrent_queue.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_concurrent_vector.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_concurrent_unordered.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_concurrent_hash_map.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_enumerable_thread_specific.$(TEST_EXT) $(args) 0:4
+ $(run_cmd) ./test_combinable.$(TEST_EXT) $(args) 0:4
+ $(run_cmd) ./test_model_plugin.$(TEST_EXT) $(args) 4
+ $(run_cmd) ./test_eh_algorithms.$(TEST_EXT) $(args) 2:4
+ $(run_cmd) ./test_eh_flow_graph.$(TEST_EXT) $(args) 2:4
+ $(run_cmd) ./test_tbb_thread.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_std_thread.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_parallel_invoke.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_task_group.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_ittnotify.$(TEST_EXT) $(args) 2:2
+ $(run_cmd) ./test_parallel_for_each.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_tbb_header.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_concurrent_monitor.$(TEST_EXT) $(args) 6:8
+ $(run_cmd) ./test_critical_section.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_semaphore.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_reader_writer_lock.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_tbb_condition_variable.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_tbb_fork.$(TEST_EXT)
+ $(run_cmd) ./test_intrusive_list.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_concurrent_priority_queue.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_task_priority.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_task_enqueue.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_task_steal_limit.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_hw_concurrency.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_fp.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_flow_graph.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_broadcast_node.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_continue_node.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_function_node.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_limiter_node.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_join_node.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_buffer_node.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_queue_node.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_priority_queue_node.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_sequencer_node.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_source_node.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_overwrite_node.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_write_once_node.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_or_node.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_multifunction_node.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_split_node.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_atomic_compiler_builtins.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_assembly_compiler_builtins.$(TEST_EXT) $(args)
+ $(run_cmd) ./test_static_assert.$(TEST_EXT) $(args)
+
+CPLUS_FLAGS_DEPRECATED = $(DEFINE_KEY)TBB_DEPRECATED=1 $(subst $(WARNING_KEY),,$(CPLUS_FLAGS)) $(WARNING_SUPPRESS) $(INCLUDE_KEY)$(tbb_root)/src/test
+
+TEST_TBB_OLD.OBJ = test_concurrent_vector_v2.$(OBJ) test_concurrent_queue_v2.$(OBJ) test_mutex_v2.$(OBJ) test_task_scheduler_observer_v3.$(OBJ)
+
+TEST_TBB_DEPRECATED.OBJ = test_concurrent_queue_deprecated.$(OBJ) \
+ test_concurrent_vector_deprecated.$(OBJ) \
+
+
+# For deprecated files, we don't mind warnings etc., thus compilation rules are most relaxed
+$(TEST_TBB_OLD.OBJ): %.$(OBJ): %.cpp
+ $(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS_DEPRECATED) $(CXX_ONLY_FLAGS) $(INCLUDES) $<
+
+%_deprecated.$(OBJ): %.cpp
+ $(CPLUS) $(COMPILE_ONLY) $(OUTPUTOBJ_KEY)$@ $(CPLUS_FLAGS_DEPRECATED) $(CXX_ONLY_FLAGS) $(INCLUDES) $<
+.PRECIOUS: %_deprecated.$(OBJ)
+
+TEST_TBB_OLD.EXE = $(subst .$(OBJ),.$(TEST_EXT),$(TEST_TBB_OLD.OBJ) $(TEST_TBB_DEPRECATED.OBJ))
+
+ifeq (,$(NO_LEGACY_TESTS))
+test_tbb_old: $(TEST_PREREQUISITE) $(TEST_TBB_OLD.EXE)
+ $(run_cmd) ./test_concurrent_vector_v2.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_concurrent_vector_deprecated.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_concurrent_queue_v2.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_concurrent_queue_deprecated.$(TEST_EXT) $(args) 1:4
+ $(run_cmd) ./test_mutex_v2.$(TEST_EXT) $(args) 1
+ $(run_cmd) ./test_mutex_v2.$(TEST_EXT) $(args) 2
+ $(run_cmd) ./test_mutex_v2.$(TEST_EXT) $(args) 4
+ $(run_cmd) ./test_task_scheduler_observer_v3.$(TEST_EXT) $(args) 1:4
+else
+test_tbb_old:
+ @echo Legacy tests skipped
+endif
+
+ifneq (,$(codecov))
+codecov_gen:
+ profmerge
+ codecov $(if $(findstring -,$(codecov)),$(codecov),) -demang -comp $(tbb_root)/build/codecov.txt
+endif
+
+test_% debug_%: test_%.$(TEST_EXT) $(TEST_PREREQUISITE)
+ifeq (,$(repeat))
+ $(run_cmd) ./$< $(args)
+else
+ifeq (windows,$(tbb_os))
+ for /L %%i in (1,1,$(repeat)) do echo %%i of $(repeat): && $(run_cmd) $< $(args)
+else
+ for ((i=1;i<=$(repeat);++i)); do echo $$i of $(repeat): && $(run_cmd) ./$< $(args); done
+endif
+endif # repeat
+ifneq (,$(codecov))
+ profmerge
+ codecov $(if $(findstring -,$(codecov)),$(codecov),) -demang -comp $(tbb_root)/build/codecov.txt
+endif
+
+time_%: time_%.$(TEST_EXT) $(TEST_PREREQUISITE)
+ $(run_cmd) ./$< $(args)
+
+
+perf_%: AUX_LIBS = perf_dll.$(LIBEXT)
+perf_%: perf_dll.$(DLL) perf_%.$(TEST_EXT)
+ $(run_cmd) ./$@.$(TEST_EXT) $(args)
+
+clean_%:
+ $(RM) $*.$(OBJ) $*.exe $*.$(DLL) $*.$(LIBEXT) $*.res $*.map $*.ilk $*.pdb $*.exp $*.*manifest $*.tmp $*.d *.ver
+
+clean:
+ $(RM) *.$(OBJ) *.exe *.$(DLL) *.$(LIBEXT) *.res *.map *.ilk *.pdb *.exp *.manifest *.tmp *.d pgopti.* *.dyn core core.*[0-9][0-9] *.ver
+
+# Include automatically generated dependences
+-include *.d
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/SunOS.gcc.inc b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/SunOS.gcc.inc
new file mode 100644
index 000000000..27ff9e489
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/SunOS.gcc.inc
@@ -0,0 +1,102 @@
+# Copyright 2005-2013 Intel Corporation. All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction. Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License. This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+COMPILE_ONLY = -c -MMD
+PREPROC_ONLY = -E -x c++
+INCLUDE_KEY = -I
+DEFINE_KEY = -D
+OUTPUT_KEY = -o #
+OUTPUTOBJ_KEY = -o #
+PIC_KEY = -fPIC
+WARNING_AS_ERROR_KEY = -Werror
+WARNING_KEY = -Wall
+TEST_WARNING_KEY = -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor $(if $(findstring cc4., $(runtime)),-Wextra)
+WARNING_SUPPRESS = -Wno-parentheses -Wno-non-virtual-dtor
+DYLIB_KEY = -shared
+LIBDL = -ldl
+
+TBB_NOSTRICT = 1
+
+CPLUS = g++
+CONLY = gcc
+LIB_LINK_FLAGS = -shared
+LIBS = -lpthread -lrt -ldl
+C_FLAGS = $(CPLUS_FLAGS) -x c
+
+ifeq ($(cfg), release)
+ CPLUS_FLAGS = -O2 -DUSE_PTHREAD
+endif
+ifeq ($(cfg), debug)
+ CPLUS_FLAGS = -DTBB_USE_DEBUG -g -O0 -DUSE_PTHREAD
+endif
+
+ASM=
+ASM_FLAGS=
+
+TBB_ASM.OBJ=
+
+ifeq (ia64,$(arch))
+# Position-independent code (PIC) is a must for IA-64
+ CPLUS_FLAGS += $(PIC_KEY)
+endif
+
+ifeq (intel64,$(arch))
+ CPLUS_FLAGS += -m64
+ LIB_LINK_FLAGS += -m64
+endif
+
+ifeq (ia32,$(arch))
+ CPLUS_FLAGS += -m32
+ LIB_LINK_FLAGS += -m32
+endif
+
+# for some gcc versions on Solaris, -m64 may imply V9, but perhaps not everywhere (TODO: verify)
+ifeq (sparc,$(arch))
+ CPLUS_FLAGS += -mcpu=v9 -m64
+ LIB_LINK_FLAGS += -mcpu=v9 -m64
+endif
+
+#------------------------------------------------------------------------------
+# Setting assembler data.
+#------------------------------------------------------------------------------
+ASSEMBLY_SOURCE=$(arch)-gas
+ifeq (ia64,$(arch))
+ ASM=ias
+ TBB_ASM.OBJ = atomic_support.o lock_byte.o log2.o pause.o
+endif
+#------------------------------------------------------------------------------
+# End of setting assembler data.
+#------------------------------------------------------------------------------
+
+#------------------------------------------------------------------------------
+# Setting tbbmalloc data.
+#------------------------------------------------------------------------------
+
+M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions -fno-schedule-insns2
+
+#------------------------------------------------------------------------------
+# End of setting tbbmalloc data.
+#------------------------------------------------------------------------------
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/SunOS.inc b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/SunOS.inc
new file mode 100644
index 000000000..4f8cfae4d
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/SunOS.inc
@@ -0,0 +1,93 @@
+# Copyright 2005-2013 Intel Corporation. All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction. Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License. This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+ifndef arch
+ arch:=$(shell uname -p)
+ ifeq ($(arch),i386)
+ ifeq ($(shell isainfo -b),64)
+ arch:=intel64
+ else
+ arch:=ia32
+ endif
+ endif
+ export arch
+# For non-IA systems running Sun OS, 'arch' will contain whatever is printed by uname -p.
+# In particular, for SPARC architecture it will contain "sparc".
+endif
+
+ifndef runtime
+ gcc_version:=$(shell gcc -v 2>&1 | grep 'gcc version' | sed -e 's/^gcc version //' | sed -e 's/ .*$$//')
+ os_version:=$(shell uname -r)
+ os_kernel_version:=$(shell uname -r | sed -e 's/-.*$$//')
+ export runtime:=cc$(gcc_version)_kernel$(os_kernel_version)
+endif
+
+ifeq ($(arch),sparc)
+ native_compiler := gcc
+ export compiler ?= gcc
+else
+ native_compiler := suncc
+ export compiler ?= suncc
+endif
+# debugger ?= gdb
+
+CMD=$(SHELL) -c
+CWD=$(shell pwd)
+RM?=rm -f
+RD?=rmdir
+MD?=mkdir -p
+NUL= /dev/null
+SLASH=/
+MAKE_VERSIONS=bash $(tbb_root)/build/version_info_sunos.sh $(CPLUS) $(CPLUS_FLAGS) $(INCLUDES) >version_string.ver
+MAKE_TBBVARS=bash $(tbb_root)/build/generate_tbbvars.sh
+
+ifdef LD_LIBRARY_PATH
+ export LD_LIBRARY_PATH := .:$(LD_LIBRARY_PATH)
+else
+ export LD_LIBRARY_PATH := .
+endif
+
+####### Build settings ########################################################
+
+OBJ = o
+DLL = so
+LIBEXT=so
+
+TBB.LST =
+TBB.DEF =
+TBB.DLL = libtbb$(CPF_SUFFIX)$(DEBUG_SUFFIX).$(DLL)
+TBB.LIB = $(TBB.DLL)
+LINK_TBB.LIB = $(TBB.LIB)
+
+MALLOC.DLL = libtbbmalloc$(DEBUG_SUFFIX).$(DLL)
+MALLOC.LIB = $(MALLOC.DLL)
+LINK_MALLOC.LIB = $(MALLOC.LIB)
+
+MALLOCPROXY.DLL = libtbbmalloc_proxy$(DEBUG_SUFFIX).$(DLL)
+
+TBB_NOSTRICT=1
+
+TEST_LAUNCHER=sh $(tbb_root)/build/test_launcher.sh $(largs)
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/SunOS.suncc.inc b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/SunOS.suncc.inc
new file mode 100644
index 000000000..8f4ed7a81
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/SunOS.suncc.inc
@@ -0,0 +1,100 @@
+# Copyright 2005-2013 Intel Corporation. All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction. Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License. This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+COMPILE_ONLY = -c -xMMD -errtags
+PREPROC_ONLY = -E -xMMD
+INCLUDE_KEY = -I
+DEFINE_KEY = -D
+OUTPUT_KEY = -o #
+OUTPUTOBJ_KEY = -o #
+PIC_KEY = -KPIC
+DYLIB_KEY = -G
+LIBDL = -ldl
+# WARNING_AS_ERROR_KEY = -errwarn=%all
+WARNING_AS_ERROR_KEY = Warning as error
+# Supported Solaris Studio* 12.2 and above, remove ',inlasmpnu' in the line below to build by compiler prior Solaris Studio* 12.2
+WARNING_SUPPRESS = -erroff=unassigned,attrskipunsup,badargtype2w,badbinaryopw,wbadasg,wvarhidemem,inlasmpnu
+tbb_strict=0
+
+TBB_NOSTRICT = 1
+
+CPLUS = CC
+CONLY = cc
+LIB_LINK_FLAGS = -G -R . -M$(tbb_root)/build/suncc.map.pause
+LINK_FLAGS += -M$(tbb_root)/build/suncc.map.pause
+LIBS = -lpthread -lrt -R .
+C_FLAGS = $(CPLUS_FLAGS)
+
+#TODO: the $(stdlib) instead of hard-wiring STLPort
+ifeq ($(cfg), release)
+ CPLUS_FLAGS = -mt -xO2 -library=stlport4 -DUSE_PTHREAD $(WARNING_SUPPRESS)
+endif
+ifeq ($(cfg), debug)
+ CPLUS_FLAGS = -mt -DTBB_USE_DEBUG -g -library=stlport4 -DUSE_PTHREAD $(WARNING_SUPPRESS)
+endif
+
+ASM=
+ASM_FLAGS=
+
+TBB_ASM.OBJ=
+
+ifeq (intel64,$(arch))
+ CPLUS_FLAGS += -m64
+ ASM_FLAGS += -m64
+ LIB_LINK_FLAGS += -m64
+endif
+
+ifeq (ia32,$(arch))
+ CPLUS_FLAGS += -m32
+ LIB_LINK_FLAGS += -m32
+endif
+
+# TODO: verify whether -m64 implies V9 on relevant Sun Studio versions
+# (those that handle gcc assembler syntax)
+ifeq (sparc,$(arch))
+ CPLUS_FLAGS += -m64
+ LIB_LINK_FLAGS += -m64
+endif
+
+export TBB_CUSTOM_VARS_SH=export CXXFLAGS="-I$${TBBROOT}/include -library=stlport4 $(CXXFLAGS) -M$${TBBROOT}/build/suncc.map.pause"
+export TBB_CUSTOM_VARS_CSH=setenv CXXFLAGS "-I$${TBBROOT}/include -library=stlport4 $(CXXFLAGS) -M$${TBBROOT}/build/suncc.map.pause"
+
+#------------------------------------------------------------------------------
+# Setting assembler data.
+#------------------------------------------------------------------------------
+ASSEMBLY_SOURCE=$(arch)-fbe
+#------------------------------------------------------------------------------
+# End of setting assembler data.
+#------------------------------------------------------------------------------
+
+#------------------------------------------------------------------------------
+# Setting tbbmalloc data.
+#------------------------------------------------------------------------------
+M_INCLUDES = $(INCLUDES) -I$(MALLOC_ROOT) -I$(MALLOC_SOURCE_ROOT)
+M_CPLUS_FLAGS = $(CPLUS_FLAGS)
+#------------------------------------------------------------------------------
+# End of setting tbbmalloc data.
+#------------------------------------------------------------------------------
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/android.gcc.inc b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/android.gcc.inc
new file mode 100644
index 000000000..682ae2e8e
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/android.gcc.inc
@@ -0,0 +1,144 @@
+# Copyright 2005-2013 Intel Corporation. All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction. Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License. This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+
+COMPILE_ONLY = -c -MMD
+PREPROC_ONLY = -E -x c++
+INCLUDE_KEY = -I
+DEFINE_KEY = -D
+OUTPUT_KEY = -o #
+OUTPUTOBJ_KEY = -o #
+PIC_KEY = -fPIC
+WARNING_AS_ERROR_KEY = -Werror
+WARNING_KEY = -Wall
+TEST_WARNING_KEY = -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor -Wextra
+
+WARNING_SUPPRESS = -Wno-parentheses -Wno-non-virtual-dtor
+DYLIB_KEY = -shared
+EXPORT_KEY = -Wl,--version-script,
+LIBDL = -ldl
+
+TBB_NOSTRICT = 1
+
+CPLUS = $(tbb_tool_prefix)g++
+CONLY = $(tbb_tool_prefix)gcc
+
+# -soname is necessary for proper linkage to TBB prebuilt libraries when building application with Android SDK
+LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
+
+LINK_FLAGS = -Wl,-rpath-link=.
+C_FLAGS = $(CPLUS_FLAGS)
+
+# gcc 4.4 and higher support C++11
+ifneq (,$(shell $(CPLUS) -dumpversion | egrep "^(4\.[4-9]|[5-9])"))
+ # On Android/gcc 4.4.3, -std=c++0x causes ::int64_t and ::uint64_t to be undefined.
+ CPP11_FLAGS = -std=gnu++0x $(DEFINE_KEY)_TBB_CPP0X
+endif
+
+ifeq ($(cfg), release)
+ CPLUS_FLAGS = -O2
+endif
+ifeq ($(cfg), debug)
+ CPLUS_FLAGS = -g -O0 $(DEFINE_KEY)TBB_USE_DEBUG
+endif
+
+CPLUS_FLAGS += $(DEFINE_KEY)USE_PTHREAD $(DEFINE_KEY)_GLIBCXX_HAVE_FENV_H
+
+ifneq (,$(findstring $(arch),ia32 intel64))
+ CPLUS_FLAGS += $(DEFINE_KEY)DO_ITT_NOTIFY
+endif
+
+ifneq (0, $(dlopen_workaround))
+ CPLUS_FLAGS += $(DEFINE_KEY)__TBB_USE_DLOPEN_REENTRANCY_WORKAROUND=1
+ CPLUS_FLAGS += $(DEFINE_KEY)__TBB_USE_DLOPEN_MAIN_PROGRAM_WORKAROUND=1
+else
+ CPLUS_FLAGS += $(DEFINE_KEY)__TBB_USE_DLOPEN_REENTRANCY_WORKAROUND=0
+ CPLUS_FLAGS += $(DEFINE_KEY)__TBB_USE_DLOPEN_MAIN_PROGRAM_WORKAROUND=0
+endif
+
+ifeq (0, $(dynamic_load))
+ CPLUS_FLAGS += $(DEFINE_KEY)__TBB_DYNAMIC_LOAD_ENABLED=0
+endif
+
+
+# Paths to the NDK prebuilt tools and libraries
+CPLUS_FLAGS += --sysroot=$(SYSROOT)
+LIB_LINK_FLAGS += --sysroot=$(SYSROOT)
+LIBS = -L$(CPLUS_LIB_PATH) -lgnustl_shared
+
+# This causes CPP11_FLAGS to be issued twice for test_lambda.cpp
+# TODO: Fix this in general for all platforms once the correct strategy is determined.
+ifneq (00,$(lambdas)$(cpp0x))
+ CXX_ONLY_FLAGS += $(CPP11_FLAGS)
+endif
+
+ifeq (ia32,$(arch))
+ # TODO: Determine best setting of -march and add to CPLUS_FLAGS
+ CPLUS_FLAGS += -m32
+ LIB_LINK_FLAGS += -m32
+endif
+
+# Currently, no intel64 support for Android, but if added later, these flags may suffice
+ifeq (intel64,$(arch))
+ CPLUS_FLAGS += -m64
+ LIB_LINK_FLAGS += -m64
+endif
+
+ifeq (arm,$(findstring arm,$(arch)))
+ CPLUS_FLAGS += -march=armv7-a $(DEFINE_KEY)TBB_USE_GCC_BUILTINS=1 $(DEFINE_KEY)__TBB_64BIT_ATOMICS=0
+endif
+
+#------------------------------------------------------------------------------
+# Setting assembler data.
+#------------------------------------------------------------------------------
+TBB_ASM.OBJ=
+MALLOC_ASM.OBJ=
+
+ASM = $(tbb_tool_prefix)as
+ifeq (intel64,$(arch))
+ ASM_FLAGS += --64
+endif
+ifeq (ia32,$(arch))
+ ASM_FLAGS += --32
+endif
+ifeq ($(cfg),debug)
+ ASM_FLAGS += -g
+endif
+
+ASSEMBLY_SOURCE=$(arch)-gas
+#------------------------------------------------------------------------------
+# End of setting assembler data.
+#------------------------------------------------------------------------------
+
+#------------------------------------------------------------------------------
+# Setting tbbmalloc data.
+#------------------------------------------------------------------------------
+
+M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions -fno-schedule-insns2
+
+#------------------------------------------------------------------------------
+# End of setting tbbmalloc data.
+#------------------------------------------------------------------------------
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/android.inc b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/android.inc
new file mode 100644
index 000000000..45650fe72
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/android.inc
@@ -0,0 +1,77 @@
+# Copyright 2005-2013 Intel Corporation. All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction. Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License. This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+#
+# Extra gmake command-line parameters for use with Android:
+#
+# dlopen_workaround: Some OS versions need workaround for dlopen to avoid recursive calls.
+#
+
+####### Detections and Commands ###############################################
+
+ifeq (android,$(findstring android,$(tbb_os)))
+ $(error TBB only supports cross-compilation for Android. Specify "target=android" instead.)
+endif
+
+ifneq ("command line","$(origin arch)")
+ ifeq (icc,$(compiler))
+ export COMPILER_VERSION := ICC: $(shell icc -V &1 | grep 'Version')
+ ifneq (,$(findstring IA-32, $(COMPILER_VERSION)))
+ export arch:=ia32
+ else
+ $(error "No support for Android in $(COMPILER_VERSION)")
+ endif
+
+ else
+ ifdef ANDROID_SERIAL
+ uname_m:=$(shell adb shell uname -m)
+ ifeq (i686,$(uname_m))
+ export arch:=ia32
+ else
+ export arch:=$(uname_m)
+ endif
+ else
+ ifndef arch
+ $(error "No target architecture specified and \'ANDROID_SERIAL\' environment variable specifying target device not set")
+ endif
+ endif
+ endif
+endif
+
+ifneq (ia32,$(arch))
+ ifneq (arm,$(findstring arm,$(arch)))
+ $(error "Unsupported architecture for Android target build: arch=$(arch).\nPlease ensure target device is connected via \'adb\' and \'ANDROID_SERIAL\' is set to target device.")
+ endif
+endif
+
+
+# Many OS versions (Android 4.0.[0-3] for example) need workaround for dlopen to avoid non-recursive loader lock hang
+export dlopen_workaround = 1
+
+# Android platform only supported from TBB 4.1 forward
+NO_LEGACY_TESTS = 1
+
+
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/android.linux.inc b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/android.linux.inc
new file mode 100644
index 000000000..887b541d5
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/android.linux.inc
@@ -0,0 +1,78 @@
+# Copyright 2005-2013 Intel Corporation. All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction. Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License. This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+####### Detections and Commands ###############################################
+
+# Must set def_prefix according to target architecture detected above
+ifeq (ia32,$(arch))
+ def_prefix = lin32
+endif
+ifeq (arm,$(findstring arm,$(arch)))
+ def_prefix = lin32
+endif
+ifeq (64,$(findstring 64,$(arch)))
+ def_prefix = lin64
+endif
+
+gcc_version = $(shell $(tbb_tool_prefix)g++ -dumpversion)
+
+ifdef ANDROID_NDK_ROOT
+ $(warning "NDK version $(ANDROID_NDK_ROOT)")
+ ndk_version:= $(lastword $(subst -, ,$(ANDROID_NDK_ROOT)))
+else
+ $(warning "NDK version not set in environment, using \'unknown\' instead.")
+ ndk_version:=unknown
+endif
+
+export runtime:=$(target)_cc$(gcc_version)_NDK$(ndk_version)_version_$(target_os_version)
+
+AR = $(tbb_tool_prefix)ar
+MAKE_VERSIONS=sh $(tbb_root)/build/version_info_android.sh $(CPLUS) $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(INCLUDES) >version_string.ver
+
+####### Build settings ########################################################
+
+# No SONAME_SUFFIX for Android allowed in library names
+TBB.LST = $(tbb_root)/src/tbb/$(def_prefix)-tbb-export.lst
+TBB.DEF = $(TBB.LST:.lst=.def)
+TBB.DLL = libtbb$(CPF_SUFFIX)$(DEBUG_SUFFIX).$(DLL)
+TBB.LIB = $(TBB.DLL)
+TBB_NO_VERSION.DLL=
+LINK_TBB.LIB = $(TBB.LIB)
+
+MALLOC.DEF = $(MALLOC_ROOT)/$(def_prefix)-tbbmalloc-export.def
+MALLOC.DLL = libtbbmalloc$(DEBUG_SUFFIX).$(DLL)
+MALLOC.LIB = $(MALLOC.DLL)
+MALLOC_NO_VERSION.DLL=
+LINK_MALLOC.LIB = $(MALLOC.LIB)
+
+MALLOCPROXY.DEF = $(MALLOC_ROOT)/$(def_prefix)-proxy-export.def
+MALLOCPROXY.DLL = libtbbmalloc_proxy$(DEBUG_SUFFIX).$(DLL)
+MALLOCPROXY_NO_VERSION.DLL=
+MALLOCPROXY.LIB = $(MALLOCPROXY.DLL)
+LINK_MALLOCPROXY.LIB = $(MALLOCPROXY.LIB)
+
+TEST_LAUNCHER=
+run_cmd ?= -sh $(tbb_root)/build/android.linux.launcher.sh $(largs)
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/android.linux.launcher.sh b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/android.linux.launcher.sh
new file mode 100644
index 000000000..cb23f7bc1
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/android.linux.launcher.sh
@@ -0,0 +1,164 @@
+#!/bin/sh
+#
+# Copyright 2005-2013 Intel Corporation. All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction. Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License. This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# Usage:
+# android.linux.launcher.sh [-v] [-u] [-l ]
+# where: -l specfies the library name to be assigned to LD_PRELOAD
+# where: -v enables verbose output when running the test (where supported)
+# where: -u is ignored on Android
+#
+# Libs and executable necessary for testing should be present in the current directory before running.
+# ANDROID_SERIAL must be set to the connected Android target device name for file transfer and test runs.
+# ANDROID_TEST_DIRECTORY may be set to the directory used for testing on the Android target device; otherwise,
+# the default directory used is "/data/local/tmp/$(basename $PWD)".
+# Note: Do not remove the redirections to '/dev/null' in the script, otherwise the nightly test system will fail.
+
+do_cleanup()
+{
+ adb pull $targetdir/events.txt events.txt > /dev/null 2>&1
+ # Remove target directory on the device
+ adb shell "rm -r ${targetdir}; mkdir -p ${targetdir}" > /dev/null 2>&1
+}
+
+do_trap_cleanup()
+{
+ do_cleanup
+ exit -1
+}
+
+# Process the optional arguments if present
+if [ "x$1" = "x-v" ]; then {
+ verb="$1"
+ shift 1
+}; fi
+
+if [ "x$1" = "x-u" ]; then {
+ shift 1
+}; fi
+
+if [ "x$1" = "x-l" ]; then {
+ ldpreload="$2"
+ shift 2
+}; fi
+
+# Collect the executable name
+exename=$(basename $1)
+shift
+
+# Prepare the target directory on the device
+currentdir=$(basename $PWD)
+targetdir=${ANDROID_TEST_DIRECTORY:-/data/local/tmp/$currentdir}
+do_cleanup
+trap do_trap_cleanup INT # if someone hits control-c, cleanup the device
+
+# Collect the list of files to transfer to the target device, starting with executable itself.
+fnamelist="$exename"
+
+# Add the C++ standard library from the NDK, which is required for all tests on Android.
+if [ ! -z "${LIB_GNU_STL_ANDROID}" ]; then
+ fnamelist="$fnamelist ${LIB_GNU_STL_ANDROID}/libgnustl_shared.so"
+else
+ fnamelist="$fnamelist libgnustl_shared.so"
+fi
+
+# Find the TBB libraries and add them to the list.
+# Add TBB libraries from the current directory that contains libtbb* files
+
+files="$(/bin/ls libtbb* 2> /dev/null)"
+if [ ! -z "$files" ]; then fnamelist="$fnamelist $files"; fi
+
+mallocfiles="$(/bin/ls libtbbmalloc* 2> /dev/null)"
+if [ ! -z "$mallocfiles" ]; then {
+ #TODO: any better workaround instead calling echo
+ #(without echo there is error: /system/bin/sh: libtbbmalloc_proxy.so: not found)
+ ldpreload="$ldpreload $(echo $mallocfiles)"
+}; fi
+
+if [ ! -z "$ldpreload" ]; then ldpreload="export LD_PRELOAD=$ldpreload;"; fi
+
+# Add any libraries built for specific tests.
+exeroot=${exename%\.*}
+files="$(/bin/ls ${exeroot}*.so ${exeroot}*.so.* 2> /dev/null)"
+if [ ! -z "$files" ]; then {
+ fnamelist="$fnamelist $files"
+}; fi
+
+# TODO: Add extra libraries from the Intel(R) Compiler for certain tests
+# found=$(echo $exename | egrep 'test_malloc_atexit\|test_malloc_lib_unload' 2> /dev/null)
+# if [ ! -z $found ] ; then
+# fnamelist="$fnamelist ${compiler_path_lib}/libimf.so \
+# ${compiler_path_lib}/libsvml.so \
+# ${compiler_path_lib}/libintlc.so.5"
+# fi
+
+# Transfer collected executable and library files to the target device.
+transfers_ok=1
+for fullname in $fnamelist; do {
+ if [ -r $fullname ]; then {
+ # Transfer the executable and libraries to top-level target directory
+ adb push $fullname ${targetdir}/$(basename $fullname) > /dev/null 2>&1
+ }; else {
+ echo "Error: required file ${currentdir}/${fullname} for test $exename not available for transfer."
+ transfers_ok=0
+ }; fi
+}; done
+
+if [ "${transfers_ok}" = "0" ]; then {
+ do_cleanup
+ exit -1
+}; fi
+
+# Transfer input files used by example codes by scanning the executable argument list.
+for fullname in "$@"; do {
+ if [ -r $fullname ]; then {
+ directory=$(dirname $fullname)
+ filename=$(basename $fullname)
+ # strip leading "." from fullname if present
+ if [ "$directory" = "\." ]; then {
+ directory=""
+ fullname=$filename
+ }; fi
+ # Create the target directory to hold input file if necessary
+ if [ ! -z $directory ]; then {
+ adb shell "mkdir $directory" > /dev/null 2>&1
+ }; fi
+ # Transfer the input file to corresponding directory on target device
+ adb push $fullname ${targetdir}/$fullname > /dev/null 2>&1
+ }; fi
+}; done
+
+# The return_code file is the best way found to return the status of the test execution when using adb shell.
+(adb shell "cd $targetdir; $ldpreload export LD_LIBRARY_PATH=.; ./$exename $verb $*; echo \$? > return_code") | sed -e "s/\\r$//"
+
+# Capture the return code string and remove the trailing \r from the return_code file contents
+exitcode=`(adb shell "cat $targetdir/return_code 2> /dev/null") | sed -e "s/\\r$//"`
+
+do_cleanup
+
+# Return the exit code of the test.
+exit $exitcode
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/android.macos.inc b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/android.macos.inc
new file mode 100644
index 000000000..51169a614
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/android.macos.inc
@@ -0,0 +1,87 @@
+# Copyright 2005-2013 Intel Corporation. All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction. Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License. This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+####### Detections and Commands ###############################################
+
+# Must set def_prefix according to target architecture detected above
+ifeq (ia32,$(arch))
+ def_prefix = lin32
+endif
+ifeq (arm,$(findstring arm,$(arch)))
+ def_prefix = lin32
+endif
+ifeq (64,$(findstring 64,$(arch)))
+ def_prefix = lin64
+endif
+
+gcc_version = $(shell $(tbb_tool_prefix)g++ -dumpversion)
+
+ifdef ANDROID_NDK_ROOT
+ $(warning "NDK version $(ANDROID_NDK_ROOT)")
+ ndk_version:= $(lastword $(subst -, ,$(ANDROID_NDK_ROOT)))
+else
+ $(warning "NDK version not set in environment, using \'unknown\' instead.")
+ ndk_version:=unknown
+endif
+
+export runtime:=$(target)_cc$(gcc_version)_NDK$(ndk_version)_version_$(target_os_version)
+
+AR = $(tbb_tool_prefix)ar
+MAKE_VERSIONS=sh $(tbb_root)/build/version_info_android.sh $(CPLUS) $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(INCLUDES) >version_string.ver
+
+####### Build settings ########################################################
+
+# No SONAME_SUFFIX for Android allowed in library names
+TBB.LST = $(tbb_root)/src/tbb/$(def_prefix)-tbb-export.lst
+TBB.DEF = $(TBB.LST:.lst=.def)
+TBB.DLL = libtbb$(CPF_SUFFIX)$(DEBUG_SUFFIX).$(DLL)
+TBB.LIB = $(TBB.DLL)
+TBB_NO_VERSION.DLL=
+LINK_TBB.LIB = $(TBB.LIB)
+
+MALLOC.DEF = $(MALLOC_ROOT)/$(def_prefix)-tbbmalloc-export.def
+MALLOC.DLL = libtbbmalloc$(DEBUG_SUFFIX).$(DLL)
+MALLOC.LIB = $(MALLOC.DLL)
+MALLOC_NO_VERSION.DLL=
+LINK_MALLOC.LIB = $(MALLOC.LIB)
+
+MALLOCPROXY.DEF = $(MALLOC_ROOT)/$(def_prefix)-proxy-export.def
+MALLOCPROXY.DLL = libtbbmalloc_proxy$(DEBUG_SUFFIX).$(DLL)
+MALLOCPROXY_NO_VERSION.DLL=
+MALLOCPROXY.LIB = $(MALLOCPROXY.DLL)
+LINK_MALLOCPROXY.LIB = $(MALLOCPROXY.LIB)
+
+TBB.RES =
+MALLOC.RES =
+RML.RES =
+TBB.MANIFEST =
+MALLOC.MANIFEST =
+RML.MANIFEST =
+OBJ = o
+DLL = so
+
+TEST_LAUNCHER=
+run_cmd ?= -sh $(tbb_root)/build/android.linux.launcher.sh $(largs)
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/android.windows.inc b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/android.windows.inc
new file mode 100644
index 000000000..a282f5c40
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/android.windows.inc
@@ -0,0 +1,86 @@
+# Copyright 2005-2013 Intel Corporation. All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction. Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License. This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+####### Detections and Commands ###############################################
+
+# Must set def_prefix according to target architecture detected above
+ifeq (ia32,$(arch))
+ def_prefix = lin32
+endif
+ifeq (arm,$(findstring arm,$(arch)))
+ def_prefix = lin32
+endif
+ifeq (64,$(findstring 64,$(arch)))
+ def_prefix = lin64
+endif
+
+gcc_version = $(shell $(tbb_tool_prefix)g++ -dumpversion)
+
+ifdef ANDROID_NDK_ROOT
+ $(warning "NDK version $(ANDROID_NDK_ROOT)")
+ ndk_version:= $(lastword $(subst -, ,$(ANDROID_NDK_ROOT)))
+else
+ $(warning "NDK version not set in environment, using \'unknown\' instead.")
+ ndk_version:=unknown
+endif
+
+export runtime:=$(target)_cc$(gcc_version)_NDK$(ndk_version)_version_$(target_os_version)
+
+AR = $(tbb_tool_prefix)ar
+MAKE_VERSIONS = cmd /C cscript /nologo /E:jscript $(subst \,/,$(tbb_root))/build/version_info_windows.js $(CONLY) $(arch) $(subst \,/,"$(CPLUS) $(CPLUS_FLAGS)") > version_string.ver
+
+####### Build settings ########################################################
+
+# No SONAME_SUFFIX for Android allowed in library names
+TBB.LST = $(tbb_root)/src/tbb/$(def_prefix)-tbb-export.lst
+TBB.DEF = $(TBB.LST:.lst=.def)
+TBB.DLL = libtbb$(CPF_SUFFIX)$(DEBUG_SUFFIX).$(DLL)
+TBB.LIB = $(TBB.DLL)
+TBB_NO_VERSION.DLL=
+LINK_TBB.LIB = $(TBB.LIB)
+
+MALLOC.DEF = $(MALLOC_ROOT)/$(def_prefix)-tbbmalloc-export.def
+MALLOC.DLL = libtbbmalloc$(DEBUG_SUFFIX).$(DLL)
+MALLOC.LIB = $(MALLOC.DLL)
+MALLOC_NO_VERSION.DLL=
+LINK_MALLOC.LIB = $(MALLOC.LIB)
+
+MALLOCPROXY.DEF = $(MALLOC_ROOT)/$(def_prefix)-proxy-export.def
+MALLOCPROXY.DLL = libtbbmalloc_proxy$(DEBUG_SUFFIX).$(DLL)
+MALLOCPROXY_NO_VERSION.DLL=
+MALLOCPROXY.LIB = $(MALLOCPROXY.DLL)
+
+TBB.RES =
+MALLOC.RES =
+RML.RES =
+TBB.MANIFEST =
+MALLOC.MANIFEST =
+RML.MANIFEST =
+OBJ = o
+DLL = so
+
+TEST_LAUNCHER=
+run_cmd ?= -sh $(tbb_root)/build/android.linux.launcher.sh $(largs)
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/big_iron.inc b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/big_iron.inc
new file mode 100644
index 000000000..5ab706fe3
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/big_iron.inc
@@ -0,0 +1,74 @@
+# Copyright 2005-2013 Intel Corporation. All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction. Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License. This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+#------------------------------------------------------------------------------
+# Defines settings for building the TBB run-time as a static library.
+# Use these only on platforms where dynamic linking is impractical.
+#
+# IF YOU USE TBB AS A STATIC LIBRARY, YOU MUST GUARANTEE THAT ONLY ONE COPY OF
+# THE TBB RUN-TIME IS LINKED INTO AN APPLICATION! LINKING IN MULTIPLE COPIES
+# OF THE TBB RUN-TIME, DIRECTLY OR INDIRECTLY, MAY CAUSE PROGRAM FAILURE!
+#------------------------------------------------------------------------------
+
+# Note that ITT_NOTIFY allows to selectively remove the definition of
+# DO_ITT_NOTIFY without sabotaging deferred expansion of CPLUS_FLAGS.
+# TODO: currently only in linux.{gcc,xl}.inc
+
+# Note that -pthread with xl gives "1501-210 (W) command option t contains an incorrect subargument";
+# multithreading is instead achieved by using the _r affix in the compiler name.
+# TODO: is -lpthread still relevant/needed with XL and _r affix?
+
+# Note that -D__TBB_NO_DLOPEN is only for scalability,
+# and is not necessarily needed by any static build.
+
+# OS specific settings =>
+ LIB_LINK_CMD = ar rcs
+ LIB_LINK_FLAGS =
+ LIB_LINK_LIBS =
+ LIB_OUTPUT_KEY =
+ ifeq ($(tbb_os),linux)
+ ifeq ($(compiler),gcc)
+ LIBS = -pthread -ldl -lrt
+ endif
+ ifeq ($(compiler),xl)
+ LIBS = -lpthread -ldl -lrt
+ endif
+ LINK_FLAGS =
+ endif
+ override CXXFLAGS += -D__TBB_DYNAMIC_LOAD_ENABLED=0 -D__TBB_SOURCE_DIRECTLY_INCLUDED=1
+ ITT_NOTIFY =
+ LIBEXT = a
+ LIBPREF = lib
+# <= OS specific settings
+
+TBB.DLL = $(LIBPREF)tbb$(DEBUG_SUFFIX).$(LIBEXT)
+TBB.LST =
+TBB.DEF =
+MALLOC.DLL = $(LIBPREF)tbbmalloc$(DEBUG_SUFFIX).$(LIBEXT)
+MALLOC.DEF =
+MALLOCPROXY.DLL =
+MALLOCPROXY.DEF =
+LINK_TBB.LIB = $(TBB.DLL)
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/codecov.txt b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/codecov.txt
new file mode 100644
index 000000000..e22f8059a
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/codecov.txt
@@ -0,0 +1,7 @@
+src/tbb
+src/tbbmalloc
+include/tbb
+src/rml/server
+src/rml/client
+src/rml/include
+source/malloc
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/common.inc b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/common.inc
new file mode 100644
index 000000000..1928443f9
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/common.inc
@@ -0,0 +1,141 @@
+# Copyright 2005-2013 Intel Corporation. All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction. Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License. This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+ifndef tbb_os
+
+ # Windows sets environment variable OS; for other systems, ask uname
+ ifeq ($(OS),)
+ OS:=$(shell uname)
+ ifeq ($(OS),)
+ $(error "Cannot detect operating system")
+ endif
+ export tbb_os=$(OS)
+ endif
+
+ ifeq ($(OS), Windows_NT)
+ export tbb_os=windows
+ endif
+ ifeq ($(OS), Linux)
+ export tbb_os=linux
+ endif
+ ifeq ($(OS), Darwin)
+ export tbb_os=macos
+ endif
+
+endif # !tbb_os
+
+ifeq ($(tbb_cpf),1)
+ export CPF_SUFFIX ?=_preview
+endif
+
+ifeq (,$(wildcard $(tbb_root)/build/$(tbb_os).inc))
+ $(error "$(tbb_os)" is not supported. Add build/$(tbb_os).inc file with os-specific settings )
+endif
+
+# detect arch and runtime versions, provide common host-specific definitions
+include $(tbb_root)/build/$(tbb_os).inc
+
+ifeq ($(arch),)
+ $(error Architecture not detected)
+endif
+ifeq ($(runtime),)
+ $(error Runtime version not detected)
+endif
+
+# process target-dependent compilation and testing configurations
+ifdef target
+ # optionally process target-dependent options for compilation and testing
+ ifneq (,$(wildcard $(tbb_root)/build/$(target).inc))
+ include $(tbb_root)/build/$(target).inc
+ endif
+
+ # optionally process host-dependent environment for target-dependent compilation and testing
+ ifneq (,$(wildcard $(tbb_root)/build/$(target).$(tbb_os).inc))
+ include $(tbb_root)/build/$(target).$(tbb_os).inc
+ endif
+
+ # insure at least one target-dependent configuration file was found for compilation and testing
+ ifeq (,$(wildcard $(tbb_root)/build/$(target).inc)$(wildcard $(tbb_root)/build/$(target).$(tbb_os).inc))
+ $(error "$(target)" is not supported. Add build/$(target).inc or build/$(target).$(tbb_os).inc file)
+ endif
+endif #target
+
+# Support for running debug tests to release library and vice versa
+flip_cfg=$(subst _flipcfg,_release,$(subst _release,_debug,$(subst _debug,_flipcfg,$(1))))
+cross_cfg = $(if $(crosstest),$(call flip_cfg,$(1)),$(1))
+
+ifdef BUILDING_PHASE
+ # Setting default configuration to release
+ cfg?=release
+ # No lambas or other C++0x extensions by default for compilers that implement them as experimental features
+ # TODO: it should become unnecessary when all relevant tests are "moved" to the TEST_TBB_CPP11 set
+ lambdas ?= 0
+ cpp0x ?= 0
+
+ ifndef target
+ target:=$(tbb_os)
+ endif
+ # process host/target compiler-dependent build configuration
+ ifeq (,$(wildcard $(tbb_root)/build/$(target).$(compiler).inc))
+ $(error "$(compiler)" is not supported on $(target). Add build/$(target).$(compiler).inc file with compiler-specific settings. )
+ endif
+ include $(tbb_root)/build/$(target).$(compiler).inc
+endif
+
+ifneq ($(BUILDING_PHASE),1)
+ # definitions for top-level Makefiles
+ origin_build_dir:=$(origin tbb_build_dir)
+ tbb_build_dir?=$(tbb_root)$(SLASH)build
+ tbb_build_prefix?=$(tbb_os)_$(arch)_$(compiler)_$(runtime)$(CPF_SUFFIX)
+ work_dir=$(tbb_build_dir)$(SLASH)$(tbb_build_prefix)
+endif # BUILDING_PHASE != 1
+
+ifdef offload
+ extra_inc=$(offload).offload.inc
+endif
+ifdef extra_inc
+ ifneq (,$(wildcard $(tbb_root)/build/$(extra_inc)))
+ include $(tbb_root)/build/$(extra_inc)
+ else
+ $(error specified build file: "build/$(extra_inc)" is not found. )
+ endif
+endif
+
+ifndef BUILDING_PHASE
+ work_dir:=$(work_dir)
+ # assign new value for tbb_root if path is not absolute (the filter keeps only /* paths)
+ ifeq ($(filter /% $(SLASH)%, $(subst :, ,$(tbb_root)) ),)
+ ifeq ($(origin_build_dir),undefined)
+ override tbb_root:=../..
+ else
+ override tbb_root:=$(CWD)/$(tbb_root)
+ endif
+ endif
+ export tbb_root
+ endif # !BUILDING_PHASE
+
+.DELETE_ON_ERROR: # Make will delete target if error occurred when building it.
+
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/common_rules.inc b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/common_rules.inc
new file mode 100644
index 000000000..340c6c7aa
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/common_rules.inc
@@ -0,0 +1,129 @@
+# Copyright 2005-2013 Intel Corporation. All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction. Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License. This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+ifeq ($(tbb_strict),1)
+ ifeq ($(WARNING_AS_ERROR_KEY),)
+ $(error WARNING_AS_ERROR_KEY is empty)
+ endif
+ # Do not remove line below!
+ WARNING_KEY += $(WARNING_AS_ERROR_KEY)
+endif
+
+ifndef TEST_EXT
+ TEST_EXT = exe
+endif
+
+.PRECIOUS: %.$(OBJ) %.$(TEST_EXT) %.res
+
+INCLUDES += $(INCLUDE_KEY)$(tbb_root)/src $(INCLUDE_KEY)$(tbb_root)/src/rml/include $(INCLUDE_KEY)$(tbb_root)/include
+
+CPLUS_FLAGS += $(WARNING_KEY) $(CXXFLAGS)
+ifeq ($(tbb_cpf),1)
+CPLUS_FLAGS += $(DEFINE_KEY)__TBB_CPF_BUILD=1
+endif
+LINK_FLAGS += $(LDFLAGS)
+LIB_LINK_FLAGS += $(LDFLAGS)
+CPLUS_FLAGS_NOSTRICT = $(subst -strict-ansi,-ansi,$(CPLUS_FLAGS))
+
+LIB_LINK_CMD ?= $(CPLUS) $(PIC_KEY)
+ifeq ($(origin LIB_OUTPUT_KEY), undefined)
+ LIB_OUTPUT_KEY = $(OUTPUT_KEY)
+endif
+ifeq ($(origin LIB_LINK_LIBS), undefined)
+ LIB_LINK_LIBS = $(LIBDL) $(LIBS)
+endif
+
+CONLY ?= $(CPLUS)
+
+# The most generic rules
+%.$(OBJ): %.cpp
+ $(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(CXX_WARN_SUPPRESS) $(INCLUDES) $<
+
+%.$(OBJ): %.c
+ $(CONLY) $(COMPILE_ONLY) $(C_FLAGS) $(INCLUDES) $<
+
+%.$(OBJ): %.asm
+ $(ASM) $(ASM_FLAGS) $<
+
+%.$(OBJ): %.s
+ cpp <$< | grep -v '^#' >$*.tmp
+ $(ASM) $(ASM_FLAGS) -o $@ $*.tmp
+
+# Rule for generating .E file if needed for visual inspection
+# Note that due to mapping for ICL all uses of PREPROC_ONLY should be immediately followed by a file name
+%.E: %.cpp
+ $(CPLUS) $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(INCLUDES) $(PREPROC_ONLY) $< >$@
+
+# TODO Rule for generating .asm file if needed for visual inspection
+%.asm: %.cpp
+ $(CPLUS) /c /FAs /Fa $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(INCLUDES) $<
+
+# TODO Rule for generating .s file if needed for visual inspection
+%.s: %.cpp
+ $(CPLUS) -S $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(INCLUDES) $<
+
+# Customizations
+
+ifeq (1,$(TBB_NOSTRICT))
+# GNU 3.2.3 headers have a ISO syntax that is rejected by Intel compiler in -strict-ansi mode.
+# The Mac uses gcc, so the list is empty for that platform.
+# The files below need the -strict-ansi flag downgraded to -ansi to compile
+
+$(KNOWN_NOSTRICT): %.$(OBJ): %.cpp
+ $(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS_NOSTRICT) $(CXX_ONLY_FLAGS) $(CXX_WARN_SUPPRESS) $(INCLUDES) $<
+endif
+
+$(KNOWN_WARNINGS): %.$(OBJ): %.cpp
+ $(CPLUS) $(COMPILE_ONLY) $(subst $(WARNING_KEY),,$(CPLUS_FLAGS)) $(CXX_ONLY_FLAGS) $(CXX_WARN_SUPPRESS) $(INCLUDES) $<
+
+tbb_misc.$(OBJ): tbb_misc.cpp version_string.ver
+ $(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(CXX_WARN_SUPPRESS) $(INCLUDE_KEY). $(INCLUDES) $<
+
+tbb_misc.E: tbb_misc.cpp version_string.ver
+ $(CPLUS) $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(INCLUDE_KEY). $(INCLUDES) $(PREPROC_ONLY) $< >$@
+
+%.res: %.rc version_string.ver $(TBB.MANIFEST)
+ rc /Fo$@ $(INCLUDES) $(filter /D%,$(CPLUS_FLAGS)) $<
+
+ifneq (,$(TBB.MANIFEST))
+$(TBB.MANIFEST):
+ cmd /C "echo #include ^ >tbbmanifest.c"
+ cmd /C "echo int main(){return 0;} >>tbbmanifest.c"
+ cl /nologo $(C_FLAGS) tbbmanifest.c
+
+version_string.ver: $(TBB.MANIFEST)
+ $(MAKE_VERSIONS)
+ cmd /C "echo #define TBB_MANIFEST 1 >> version_string.ver"
+
+else
+version_string.ver:
+ $(MAKE_VERSIONS)
+endif
+
+
+# Rules for generating a test DLL
+%_dll.$(OBJ): %.cpp
+ $(CPLUS) $(COMPILE_ONLY) $(OUTPUTOBJ_KEY)$@ $(CPLUS_FLAGS) $(PIC_KEY) $(DEFINE_KEY)_USRDLL $(INCLUDES) $<
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/detect.js b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/detect.js
new file mode 100644
index 000000000..8e0ce5deb
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/detect.js
@@ -0,0 +1,183 @@
+// Copyright 2005-2013 Intel Corporation. All Rights Reserved.
+//
+// This file is part of Threading Building Blocks.
+//
+// Threading Building Blocks is free software; you can redistribute it
+// and/or modify it under the terms of the GNU General Public License
+// version 2 as published by the Free Software Foundation.
+//
+// Threading Building Blocks is distributed in the hope that it will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Threading Building Blocks; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+function doWork() {
+ var WshShell = WScript.CreateObject("WScript.Shell");
+
+ var fso = new ActiveXObject("Scripting.FileSystemObject");
+
+ var tmpExec;
+ tmpExec = WshShell.Run("cmd /c echo int main(){return 0;} >detect.c", 0, true);
+
+ // The next block deals with GCC (MinGW)
+ if ( WScript.Arguments.Count() > 1 && WScript.Arguments(1) == "gcc" ) {
+ if ( WScript.Arguments(0) == "/arch" ) {
+ // Get predefined macros
+ tmpExec = WshShell.Run("cmd /C gcc -dM -E detect.c > detect.map", 0, true);
+ var file = fso.OpenTextFile("detect.map", 1, 0);
+ var defs = file.readAll();
+ file.Close();
+
+ //detect target architecture
+ var intel64=/x86_64|amd64/mgi;
+ var ia32=/i386/mgi;
+ if ( defs.match(intel64) ) {
+ WScript.Echo( "intel64" );
+ } else if ( defs.match(ia32) ) {
+ WScript.Echo( "ia32" );
+ } else {
+ WScript.Echo( "unknown" );
+ }
+ } else {
+ tmpExec = WshShell.Exec("gcc -dumpversion");
+ var gcc_version = tmpExec.StdOut.ReadLine();
+ if ( WScript.Arguments(0) == "/runtime" ) {
+ WScript.Echo( "mingw"+gcc_version );
+ }
+ else if ( WScript.Arguments(0) == "/minversion" ) {
+ // Comparing strings, not numbers; will not work for two-digit versions
+ if ( gcc_version >= WScript.Arguments(2) ) {
+ WScript.Echo( "ok" );
+ } else {
+ WScript.Echo( "fail" );
+ }
+ }
+ }
+ return;
+ }
+
+ //Compile binary
+ tmpExec = WshShell.Exec("cl /MD detect.c /link /MAP");
+ while ( tmpExec.Status == 0 ) {
+ WScript.Sleep(100);
+ }
+ //compiler banner that includes version and target arch was printed to stderr
+ var clVersion = tmpExec.StdErr.ReadAll();
+
+ if ( WScript.Arguments(0) == "/arch" ) {
+ //detect target architecture
+ var intel64=/AMD64|EM64T|x64/mgi;
+ var ia64=/IA-64|Itanium/mgi;
+ var ia32=/[80|\s]x86/mgi;
+ if ( clVersion.match(intel64) ) {
+ WScript.Echo( "intel64" );
+ } else if ( clVersion.match(ia64) ) {
+ WScript.Echo( "ia64" );
+ } else if ( clVersion.match(ia32) ) {
+ WScript.Echo( "ia32" );
+ } else {
+ WScript.Echo( "unknown" );
+ }
+ return;
+ }
+
+ if ( WScript.Arguments(0) == "/runtime" ) {
+ //read map-file
+ var map = fso.OpenTextFile("detect.map", 1, 0);
+ var mapContext = map.readAll();
+ map.Close();
+
+ //detect runtime
+ var vc71=/MSVCR71\.DLL/mgi;
+ var vc80=/MSVCR80\.DLL/mgi;
+ var vc90=/MSVCR90\.DLL/mgi;
+ var vc100=/MSVCR100\.DLL/mgi;
+ var vc110=/MSVCR110\.DLL/mgi;
+ var psdk=/MSVCRT\.DLL/mgi;
+ if ( mapContext.match(vc71) ) {
+ WScript.Echo( "vc7.1" );
+ } else if ( mapContext.match(vc80) ) {
+ WScript.Echo( "vc8" );
+ } else if ( mapContext.match(vc90) ) {
+ WScript.Echo( "vc9" );
+ } else if ( mapContext.match(vc100) ) {
+ WScript.Echo( "vc10" );
+ } else if ( mapContext.match(vc110) ) {
+ WScript.Echo( "vc11" );
+ } else {
+ WScript.Echo( "unknown" );
+ }
+ return;
+ }
+
+ if ( WScript.Arguments(0) == "/minversion" ) {
+ var compiler_version;
+ if ( WScript.Arguments(1) == "cl" ) {
+ compiler_version = clVersion.match(/Compiler Version ([0-9.]+)\s/mi)[1];
+ // compiler_version is in xx.xx.xxxxx.xx format, i.e. a string.
+ // It will compare well with major.minor versions where major has two digits,
+ // which is sufficient as the versions of interest start from 13 (for VC7).
+ } else if ( WScript.Arguments(1) == "icl" ) {
+ // Get predefined ICL macros
+ tmpExec = WshShell.Run("cmd /C icl /QdM /E detect.c > detect.map", 0, true);
+ var file = fso.OpenTextFile("detect.map", 1, 0);
+ var defs = file.readAll();
+ file.Close();
+ // In #define __INTEL_COMPILER XXYY, XX is the major ICL version, YY is minor
+ compiler_version = defs.match(/__INTEL_COMPILER[ \t]*([0-9]+).*$/mi)[1]/100;
+ // compiler version is a number; it compares well with another major.minor
+ // version number, where major has one, two, and perhaps more digits (9.1, 11, etc).
+ }
+ if ( compiler_version >= WScript.Arguments(2) ) {
+ WScript.Echo( "ok" );
+ } else {
+ WScript.Echo( "fail" );
+ }
+ return;
+ }
+}
+
+function doClean() {
+ var fso = new ActiveXObject("Scripting.FileSystemObject");
+ // delete intermediate files
+ if ( fso.FileExists("detect.c") )
+ fso.DeleteFile ("detect.c", false);
+ if ( fso.FileExists("detect.obj") )
+ fso.DeleteFile ("detect.obj", false);
+ if ( fso.FileExists("detect.map") )
+ fso.DeleteFile ("detect.map", false);
+ if ( fso.FileExists("detect.exe") )
+ fso.DeleteFile ("detect.exe", false);
+ if ( fso.FileExists("detect.exe.manifest") )
+ fso.DeleteFile ("detect.exe.manifest", false);
+}
+
+if ( WScript.Arguments.Count() > 0 ) {
+
+ try {
+ doWork();
+ } catch( error ) {
+ WScript.Echo( "unknown" );
+ }
+ doClean();
+
+} else {
+ WScript.Echo( "Supported options:\n"
+ + "\t/arch [compiler]\n"
+ + "\t/runtime [compiler]\n"
+ + "\t/minversion compiler version" );
+}
+
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/generate_tbbvars.bat b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/generate_tbbvars.bat
new file mode 100644
index 000000000..d4e869cde
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/generate_tbbvars.bat
@@ -0,0 +1,77 @@
+@echo off
+REM
+REM Copyright 2005-2013 Intel Corporation. All Rights Reserved.
+REM
+REM This file is part of Threading Building Blocks.
+REM
+REM Threading Building Blocks is free software; you can redistribute it
+REM and/or modify it under the terms of the GNU General Public License
+REM version 2 as published by the Free Software Foundation.
+REM
+REM Threading Building Blocks is distributed in the hope that it will be
+REM useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+REM of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+REM GNU General Public License for more details.
+REM
+REM You should have received a copy of the GNU General Public License
+REM along with Threading Building Blocks; if not, write to the Free Software
+REM Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+REM
+REM As a special exception, you may use this file as part of a free software
+REM library without restriction. Specifically, if other files instantiate
+REM templates or use macros or inline functions from this file, or you compile
+REM this file and link it with other files to produce an executable, this
+REM file does not by itself cause the resulting executable to be covered by
+REM the GNU General Public License. This exception does not however
+REM invalidate any other reasons why the executable file might be covered by
+REM the GNU General Public License.
+REM
+setlocal
+for %%D in ("%tbb_root%") do set actual_root=%%~fD
+set fslash_root=%actual_root:\=/%
+set bin_dir=%CD%
+set fslash_bin_dir=%bin_dir:\=/%
+set _INCLUDE=INCLUDE& set _LIB=LIB
+if not x%UNIXMODE%==x set _INCLUDE=CPATH& set _LIB=LIBRARY_PATH
+
+if exist tbbvars.bat goto skipbat
+echo Generating local tbbvars.bat
+echo @echo off>tbbvars.bat
+echo SET TBBROOT=%actual_root%>>tbbvars.bat
+echo SET TBB_ARCH_PLATFORM=%arch%\%runtime%>>tbbvars.bat
+echo SET TBB_TARGET_ARCH=%arch%>>tbbvars.bat
+echo SET %_INCLUDE%=%%TBBROOT%%\include;%%%_INCLUDE%%%>>tbbvars.bat
+echo SET %_LIB%=%bin_dir%;%%%_LIB%%%>>tbbvars.bat
+echo SET PATH=%bin_dir%;%%PATH%%>>tbbvars.bat
+if not x%UNIXMODE%==x echo SET LD_LIBRARY_PATH=%bin_dir%;%%LD_LIBRARY_PATH%%>>tbbvars.bat
+:skipbat
+
+if exist tbbvars.sh goto skipsh
+echo Generating local tbbvars.sh
+echo #!/bin/sh>tbbvars.sh
+echo export TBBROOT="%fslash_root%">>tbbvars.sh
+echo export TBB_ARCH_PLATFORM="%arch%\%runtime%">>tbbvars.sh
+echo export TBB_TARGET_ARCH="%arch%">>tbbvars.sh
+echo export %_INCLUDE%="${TBBROOT}/include;$%_INCLUDE%">>tbbvars.sh
+echo export %_LIB%="%fslash_bin_dir%;$%_LIB%">>tbbvars.sh
+echo export PATH="%fslash_bin_dir%;$PATH">>tbbvars.sh
+if not x%UNIXMODE%==x echo export LD_LIBRARY_PATH="%fslash_bin_dir%;$LD_LIBRARY_PATH">>tbbvars.sh
+:skipsh
+
+if exist tbbvars.csh goto skipcsh
+echo Generating local tbbvars.csh
+echo #!/bin/csh>tbbvars.csh
+echo setenv TBBROOT "%actual_root%">>tbbvars.csh
+echo setenv TBB_ARCH_PLATFORM "%arch%\%runtime%">>tbbvars.csh
+echo setenv TBB_TARGET_ARCH "%arch%">>tbbvars.csh
+echo setenv %_INCLUDE% "${TBBROOT}\include;$%_INCLUDE%">>tbbvars.csh
+echo setenv %_LIB% "%bin_dir%;$%_LIB%">>tbbvars.csh
+echo setenv PATH "%bin_dir%;$PATH">>tbbvars.csh
+if not x%UNIXMODE%==x echo setenv LD_LIBRARY_PATH "%bin_dir%;$LD_LIBRARY_PATH">>tbbvars.csh
+:skipcsh
+
+REM Workaround for copying Android* specific libgnustl_shared.so library to work folder
+if not x%LIB_GNU_STL_ANDROID%==x copy /Y "%LIB_GNU_STL_ANDROID%"\libgnustl_shared.so
+
+endlocal
+exit
diff --git a/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/generate_tbbvars.sh b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/generate_tbbvars.sh
new file mode 100644
index 000000000..227619f77
--- /dev/null
+++ b/resources/3rdparty/tbb41_20130314_merged-win-lin-mac/build/generate_tbbvars.sh
@@ -0,0 +1,81 @@
+#!/bin/bash
+#
+# Copyright 2005-2013 Intel Corporation. All Rights Reserved.
+#
+# This file is part of Threading Building Blocks.
+#
+# Threading Building Blocks is free software; you can redistribute it
+# and/or modify it under the terms of the GNU General Public License
+# version 2 as published by the Free Software Foundation.
+#
+# Threading Building Blocks is distributed in the hope that it will be
+# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Threading Building Blocks; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# As a special exception, you may use this file as part of a free software
+# library without restriction. Specifically, if other files instantiate
+# templates or use macros or inline functions from this file, or you compile
+# this file and link it with other files to produce an executable, this
+# file does not by itself cause the resulting executable to be covered by
+# the GNU General Public License. This exception does not however
+# invalidate any other reasons why the executable file might be covered by
+# the GNU General Public License.
+
+# Script used to generate tbbvars.[c]sh scripts
+bin_dir="$PWD" #
+cd "$tbb_root" # keep this comments here
+tbb_root="$PWD" # to make it unsensible
+cd "$bin_dir" # to EOL encoding
+[ "`uname`" = "Darwin" ] && dll_path="DYLD_LIBRARY_PATH" || dll_path="LD_LIBRARY_PATH" #
+[ -f ./tbbvars.sh ] || cat >./tbbvars.sh <./tbbvars.csh <
+
+
+Overview
+This directory contains the internal Makefile infrastructure for Intel® Threading Building Blocks (Intel® TBB).
+
+
+See below for how to build Intel TBB and how to port Intel TBB
+to a new platform, operating system or architecture.
+
+
+Files
+The files here are not intended to be used directly. See below for usage.
+
+- Makefile.tbb
+
- Main Makefile to build the Intel TBB library.
+ Invoked via 'make tbb' from top-level Makefile.
+
- Makefile.tbbmalloc
+
- Main Makefile to build the Intel TBB scalable memory allocator library as well as its tests.
+ Invoked via 'make tbbmalloc' from top-level Makefile.
+
- Makefile.test
+
- Main Makefile to build and run the tests for the Intel TBB library.
+ Invoked via 'make test' from top-level Makefile.
+
- common.inc
+
- Main common included Makefile that includes OS-specific and compiler-specific Makefiles.
+
- <os>.inc
+
- OS-specific Makefile for a particular <os>.
+
- <os>.<compiler>.inc
+
- Compiler-specific Makefile for a particular <os> / <compiler> combination.
+
- *.sh
+
- Infrastructure utilities for Linux* OS, OS X*, and UNIX*-related operating systems.
+
- *.js, *.bat
+
- Infrastructure utilities for Windows* OS.
+
+
+To Build
+
+To port Intel TBB to a new platform, operating system or architecture, see the porting directions below.
+
+
+Software prerequisites:
+
+- C++ compiler for the platform, operating system and architecture of interest.
+ Either the native compiler for your system, or, optionally, the appropriate Intel® C++ compiler, may be used.
+
- GNU make utility. On Windows OS, if a UNIX* emulator is used to run GNU make,
+ it should be able to run Windows OS utilities and commands. On Linux OS, OS X, etc.,
+ shell commands issued by GNU make should execute in a Bourne or BASH compatible shell.
+
+
+
+Intel TBB libraries can be built by performing the following steps.
+On systems that support only one ABI (e.g., 32-bit), these steps build the libraries for that ABI.
+On systems that support both 64-bit and 32-bit libraries, these steps build the 64-bit libraries
+(Linux OS, OS X, and related systems) or whichever ABI is selected in the development environment (Windows OS).
+
+
+- Change to the top-level directory of the installed software.
+
- If using the Intel® C++ compiler, make sure the appropriate compiler is available in your PATH
+ (e.g., by sourcing the appropriate iccvars script for the compiler to be used).
+
- Invoke GNU make using no arguments, for example, 'gmake'.
+
+
+
+To build Intel TBB libraries for other than the default ABI (e.g., to build 32-bit libraries on Linux OS, OS X,
+or related systems that support both 64-bit and 32-bit libraries), perform the following steps:
+
+
+- Change to the top-level directory of the installed software.
+
- If using the Intel® C++ compiler, make sure the appropriate compiler is available in your PATH
+ (e.g., by sourcing the appropriate iccvars script for the compiler to be used).
+
- Invoke GNU make as follows, 'gmake arch=ia32'.
+
+
+The default make target will build the release and debug versions of the Intel TBB library.
+Other targets are available in the top-level Makefile. You might find the following targets useful:
+
+- 'make test' will build and run Intel TBB unit-tests;
+
- 'make examples' will build and run Intel TBB examples;
+
- 'make all' will do all of the above.
+
+See also the list of other targets below.
+
+
+
+By default, the libraries will be built in sub-directories within the build/ directory.
+The sub-directories are named according to the operating system, architecture, compiler and software environment used
+(the sub-directory names also distinguish release vs. debug libraries). On Linux OS, the software environment comprises
+the GCC, libc and kernel version used. On OS X, the software environment comprises the GCC and OS version used.
+On Windows OS, the software environment comprises the Microsoft* Visual Studio* version used.
+See below for how to change the default build directory.
+
+
+
+To perform different build and/or test operations, use the following steps.
+
+
+- Change to the top-level directory of the installed software.
+
- If using the Intel® C++ compiler, make sure the appropriate compiler is available in your PATH
+ (e.g., by sourcing the appropriate iccvars script for the compiler to be used).
+
- Invoke GNU make by using one or more of the following commands.
+
+ - make
+
- Default build. Equivalent to 'make tbb tbbmalloc'.
+
- make all
+
- Equivalent to 'make tbb tbbmalloc test examples'.
+
- cd src;make release
+
- Build and test release libraries only.
+
- cd src;make debug
+
- Build and test debug libraries only.
+
- make tbb
+
- Make Intel TBB release and debug libraries.
+
- make tbbmalloc
+
- Make Intel TBB scalable memory allocator libraries.
+
- make test
+
- Compile and run unit-tests
+
- make examples
+
- Build libraries and run all examples, like doing 'make debug clean release' from
+ the general example Makefile.
+
- make compiler={icl, icc, gcc, clang} [(above options or targets)]
+
- Build and run as above, but use specified compilers instead of default, native compilers
+
- {icl, icc} - to use Intel® compilers (icl on Windows OS, icc on Linux OS or OS X).
+ - gcc - to use g++ (e.g. MinGW on Windows OS)
+ - clang - to use Clang compiler
+ - make compiler=clang stdlib=libc++ [(above options or targets)]
+
- Build and run as above, but use libc++ as a standard c++ library for clang.
+
- make target_ui=win8ui [target_ui_mode=production] [(above options or targets)]
+
- Build and run as above, but use API that is compliant with Windows Store* applications.
+ target_ui_mode=production is used to produce binaries that are compliant with Windows Store* application container.
+ In later case they won't with Intel TBB unit tests but work only with Windows Store* applications.
+
- ndk-build target=android [(above options or targets)]
+
- Build and run as above, but build libraries for Android* OS by Android NDK that should be installed. Makefiles were tested with revision 8.
+
- make arch={ia32, intel64, ia64} [(above options or targets)]
+
- Build and run as above, but build libraries for the selected ABI.
+ Might be useful for cross-compilation; ensure proper environment is set before running this command.
+
- make tbb_root={(Intel TBB directory)} [(above options or targets)]
+
- Build and run as above; for use when invoking 'make' from a directory other than
+ the top-level directory.
+
- make tbb_build_dir={(build directory)} [(above options or targets)]
+
- Build and run as above, but place the built libraries in the specified directory, rather than in the default
+ sub-directory within the build/ directory. This command might have troubles with the build in case the sources
+ installed to the directory with spaces in the path.
+
- make tbb_build_prefix={(build sub-directory)} [(above options or targets)]
+
- Build and run as above, but place the built libraries in the specified sub-directory within the build/ directory,
+ rather than using the default sub-directory name.
+
- make tbb_cpf=1 [(above options or targets)]
+
- Build and run as above, but build and use libraries with the Community Preview Features enabled,
+ rather than the default libraries.
+
- make [(above options)] clean
+
- Remove any executables or intermediate files produced by the above commands.
+ Includes build directories, object files, libraries and test executables.
+
+
+
+To Port
+
+This section provides information on how to port Intel TBB to a new platform, operating system or architecture.
+A subset or a superset of these steps may be required for porting to a given platform.
+
+
+To port the Intel TBB source code:
+
+- If porting to a new architecture, create a file that describes the architecture-specific details for that architecture.
+
+ - Create a <os>_<architecture>.h file in the include/tbb/machine directory
+ that describes these details.
+
+ - The <os>_<architecture>.h is named after the operating system and architecture as recognized by
+ include/tbb/tbb_machine.h and the Makefile infrastructure.
+
- This file defines the implementations of synchronization operations, and also the
+ scheduler yield function, for the operating system and architecture.
+
- Several examples of <os>_<architecture>.h files can be found in the
+ include/tbb/machine directory.
+
+ - A minimal implementation defines the 4-byte and 8-byte compare-and-swap operations,
+ and the scheduler yield function. See include/tbb/machine/mac_ppc.h
+ for an example of a minimal implementation.
+
- More complex implementation examples can also be found in the
+ include/tbb/machine directory
+ that implement all the individual variants of synchronization operations that Intel TBB uses.
+ Such implementations are more verbose but may achieve better performance on a given architecture.
+
- In a given implementation, any synchronization operation that is not defined is implemented, by default,
+ in terms of 4-byte or 8-byte compare-and-swap. More operations can thus be added incrementally to increase
+ the performance of an implementation.
+
- In most cases, synchronization operations are implemented as inline assembly code; examples also exist,
+ (e.g., for Intel® Itanium® processors) that use out-of-line assembly code in *.s or *.asm files
+ (see the assembly code sub-directories in the src/tbb directory).
+
+
+ - Modify include/tbb/tbb_machine.h, if needed, to invoke the appropriate
+ <os>_<architecture>.h file in the include/tbb/machine directory.
+
+ - Add an implementation of DetectNumberOfWorkers() in src/tbb/tbb_misc.h,
+ that returns the number of cores found on the system in case it is not supported by the current implementation.
+ This is used to determine the default number of threads for the Intel TBB task scheduler.
+
- Either properly define FillDynamicLinks for use in
+ src/tbb/cache_aligned_allocator.cpp,
+ or hardcode the allocator to be used.
+
- Additional types might be required in the union defined in
+ include/tbb/aligned_space.h
+ to ensure proper alignment on your platform.
+
- Changes may be required in include/tbb/tick_count.h
+ for systems that do not provide gettimeofday.
+
+
+To port the Makefile infrastructure:
+Modify the appropriate files in the Makefile infrastructure to add a new platform, operating system or architecture as needed.
+See the Makefile infrastructure files for examples.
+
+- The top-level Makefile includes common.inc to determine the operating system.
+
+ - To add a new operating system, add the appropriate test to common.inc,
+ and create the needed <os>.inc and <os>.<compiler>.inc files (see below).
+
+ - The <os>.inc file makes OS-specific settings for a particular operating systems.
+
+ - For example, linux.inc makes settings specific to Linux operating systems.
+
- This file performs OS-dependent tests to determine the specific platform and/or architecture,
+ and sets other platform-dependent values.
+
- Add a new <os>.inc file for each new operating system added.
+
+ - The <os>.<compiler>.inc file makes compiler-specific settings for a particular
+ <os> / <compiler> combination.
+
+ - For example, linux.gcc.inc makes specific settings for using GCC on Linux OS,
+ and linux.icc.inc makes specific settings for using the Intel® C++ compiler on Linux OS.
+
- This file sets particular compiler, assembler and linker options required when using a particular
+ <os> / <compiler> combination.
+
- Add a new <os>.<compiler>.inc file for each new <os> / <compiler> combination added.
+
+
+
+
+Up to parent directory
+
+Copyright © 2005-2013 Intel Corporation. All Rights Reserved.
+
+Intel and Itanium are registered trademarks or trademarks of Intel Corporation or its
+subsidiaries in the United States and other countries.
+
+* Other names and brands may be claimed as the property of others.
+
+