diff --git a/.gitignore b/.gitignore
index 9b2411eca8..3bf28b5cdd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,88 +1,60 @@
-# Ignore the debug and release directories created with Makefile builds #
-#########################################################################
-build/*_debug/
-build/*_release/
+# -------- C++ --------
+# Prerequisites
+*.d
-# Compiled source #
-###################
-*.com
-*.class
-*.dll
-*.lib
-*.pdb
-*.exe
+# Compiled Object files
+*.slo
+*.lo
*.o
-*.so
-*.so.1
-*.so.2
-*.dylib
-*.a
*.obj
-*.pyc
-*.orig
-*.raw
-*.sample
-*.slo
-*.swp
-*.config
-*.la
-*.lai
-*.lo
-*.nhdr
-*.nii.gz
-*.nrrd
+# Precompiled Headers
+*.gch
+*.pch
-# Packages #
-############
-# it's better to unpack these files and commit the raw source
-# git has its own built in compression methods
-*.7z
-*.dmg
-*.gz
-*.iso
-*.jar
-*.rar
-*.tar
-*.tgz
-*.zip
+# Compiled Dynamic libraries
+*.so
+*.so.*
+*.dylib
+*.dll
-# Logs and databases #
-######################
-*.log
-*.sql
-*.sqlite
+# Fortran module files
+*.mod
+*.smod
-# OS generated files #
-######################
-.DS_Store
-.DS_Store?
-._*
-.Spotlight-V100
-.Trashes
-ehthumbs.db
-Thumbs.db
+# Compiled Static libraries
+*.lai
+*.la
+*.a
+*.lib
-# IDE generated files #
-######################
-/.ninja_deps
-/.ninja_log
-/build.ninja
-/rules.ninja
-*~
-.emacs.desktop
-.tags
+# Executables
+*.exe
+*.out
+*.app
-# Build system generated files #
-################################
+# -------- CMake --------
CMakeCache.txt
-CMakeFiles/
+CMakeFiles
+CMakeScripts
+Testing
+Makefile
+cmake_install.cmake
+install_manifest.txt
+compile_commands.json
+CTestTestfile.cmake
+build/*
+
+# -------- Python --------
+__pycache__/
+*.py[cod]
+*$py.class
+
+# -------- IDE --------
+.vscode/*
+.vs/*
+
+# -------- CTags --------
+.tags
+.ctags
-# Other #
-#########
-.clang_complete
-.idea
-.svn
-crash*
-*.tmp
-/.vs
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000000..ff992be2ec
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,242 @@
+# Copyright (c) 2020 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+cmake_minimum_required(VERSION 3.1)
+
+include(CheckCXXCompilerFlag)
+
+# Enable CMake policies
+
+if (POLICY CMP0091)
+ # The NEW behavior for this policy is to not place MSVC runtime library flags in the default
+ # CMAKE__FLAGS_ cache entries and use CMAKE_MSVC_RUNTIME_LIBRARY abstraction instead.
+ cmake_policy(SET CMP0091 NEW)
+elseif (DEFINED CMAKE_MSVC_RUNTIME_LIBRARY)
+ message(FATAL_ERROR "CMAKE_MSVC_RUNTIME_LIBRARY was defined while policy CMP0091 is not available. Use CMake 3.15 or newer.")
+endif()
+
+if (TBB_WINDOWS_DRIVER AND (NOT ("${CMAKE_MSVC_RUNTIME_LIBRARY}" STREQUAL MultiThreaded OR "${CMAKE_MSVC_RUNTIME_LIBRARY}" STREQUAL MultiThreadedDebug)))
+ message(FATAL_ERROR "Enabled TBB_WINDOWS_DRIVER requires CMAKE_MSVC_RUNTIME_LIBRARY to be set to MultiThreaded or MultiThreadedDebug.")
+endif()
+
+# Until CMake 3.4.0 FindThreads.cmake requires C language enabled.
+# Enable C language before CXX to avoid possible override of CMAKE_SIZEOF_VOID_P.
+if (CMAKE_VERSION VERSION_LESS 3.4)
+ enable_language(C)
+endif()
+
+file(READ include/tbb/version.h _tbb_version_info)
+string(REGEX REPLACE ".*#define TBB_VERSION_MAJOR ([0-9]+).*" "\\1" _tbb_ver_major "${_tbb_version_info}")
+string(REGEX REPLACE ".*#define TBB_VERSION_MINOR ([0-9]+).*" "\\1" _tbb_ver_minor "${_tbb_version_info}")
+string(REGEX REPLACE ".*#define TBB_INTERFACE_VERSION ([0-9]+).*" "\\1" TBB_INTERFACE_VERSION "${_tbb_version_info}")
+string(REGEX REPLACE ".*#define __TBB_BINARY_VERSION ([0-9]+).*" "\\1" TBB_BINARY_VERSION "${_tbb_version_info}")
+set(TBBMALLOC_BINARY_VERSION 2)
+
+project(TBB VERSION ${_tbb_ver_major}.${_tbb_ver_minor} LANGUAGES CXX)
+unset(_tbb_ver_major)
+unset(_tbb_ver_minor)
+
+# ---------------------------------------------------------------------------------------------------------
+# Handle C++ standard version.
+if (NOT MSVC) # no need to cover MSVC as it uses C++14 by default.
+ if (NOT CMAKE_CXX_STANDARD)
+ set(CMAKE_CXX_STANDARD 11)
+ endif()
+
+ if (CMAKE_CXX${CMAKE_CXX_STANDARD}_STANDARD_COMPILE_OPTION) # if standard option was detected by CMake
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
+ else() # if standard option wasn't detected by CMake (e.g. for Intel Compiler with CMake 3.1)
+ # TBB_CXX_STD_FLAG should be added to targets via target_compile_options
+ set(TBB_CXX_STD_FLAG -std=c++${CMAKE_CXX_STANDARD})
+
+ check_cxx_compiler_flag(${TBB_CXX_STD_FLAG} c++${CMAKE_CXX_STANDARD})
+ if (NOT c++${CMAKE_CXX_STANDARD})
+ message(FATAL_ERROR "C++${CMAKE_CXX_STANDARD} (${TBB_CXX_STD_FLAG}) support is required")
+ endif()
+ unset(c++${CMAKE_CXX_STANDARD})
+ endif()
+endif()
+
+set(CMAKE_CXX_EXTENSIONS OFF) # use -std=c++... instead of -std=gnu++...
+# ---------------------------------------------------------------------------------------------------------
+
+# Detect architecture (bitness).
+if (CMAKE_SIZEOF_VOID_P EQUAL 4)
+ set(TBB_ARCH 32)
+else()
+ set(TBB_ARCH 64)
+endif()
+
+option(TBB_TEST "Enable testing" ON)
+option(TBB_EXAMPLES "Enable examples" OFF)
+option(TBB_STRICT "Treat compiler warnings as errors" ON)
+option(TBB_NUMA_SUPPORT "Enable NUMA support that depends on Portable Hardware Locality (hwloc) library" OFF)
+option(TBB_WINDOWS_DRIVER "Build as Universal Windows Driver (UWD)" OFF)
+option(TBB_NO_APPCONTAINER "Apply /APPCONTAINER:NO (for testing binaries for Windows Store)" OFF)
+option(TBB4PY_BUILD "Enable tbb4py build" OFF)
+option(TBB_CPF "Enable preview features of the library" OFF)
+option(TBB_FIND_PACKAGE "Enable search for external oneTBB using find_package instead of build from sources" OFF)
+
+if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
+ set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Build type" FORCE)
+ message(STATUS "CMAKE_BUILD_TYPE is not specified. Using default: ${CMAKE_BUILD_TYPE}")
+ # Possible values of build type for cmake-gui
+ set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
+endif()
+
+# -------------------------------------------------------------------
+# Files and folders naming
+set(CMAKE_DEBUG_POSTFIX _debug)
+
+if (NOT DEFINED TBB_OUTPUT_DIR_BASE)
+ if (MSVC)
+ if (NOT DEFINED CMAKE_MSVC_RUNTIME_LIBRARY OR CMAKE_MSVC_RUNTIME_LIBRARY MATCHES DLL)
+ set(_tbb_msvc_runtime _md)
+ else()
+ set(_tbb_msvc_runtime _mt)
+ endif()
+
+ if (WINDOWS_STORE)
+ if (TBB_NO_APPCONTAINER)
+ set(_tbb_win_store _wsnoappcont)
+ else()
+ set(_tbb_win_store _ws)
+ endif()
+ elseif(TBB_WINDOWS_DRIVER)
+ set(_tbb_win_store _wd)
+ endif()
+ endif()
+
+ string(REGEX MATCH "^([0-9]+\.[0-9]+|[0-9]+)" _tbb_compiler_version_short ${CMAKE_CXX_COMPILER_VERSION})
+ string(TOLOWER ${CMAKE_CXX_COMPILER_ID}_${_tbb_compiler_version_short}_cxx${CMAKE_CXX_STANDARD}_${TBB_ARCH}${_tbb_msvc_runtime}${_tbb_win_store} TBB_OUTPUT_DIR_BASE)
+ unset(_tbb_msvc_runtime)
+ unset(_tbb_win_store)
+ unset(_tbb_compiler_version_short)
+endif()
+
+foreach(output_type LIBRARY ARCHIVE PDB RUNTIME)
+ if (CMAKE_BUILD_TYPE)
+ string(TOLOWER ${CMAKE_BUILD_TYPE} _tbb_build_type_lower)
+ set(CMAKE_${output_type}_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${TBB_OUTPUT_DIR_BASE}_${_tbb_build_type_lower})
+ unset(_tbb_build_type_lower)
+ endif()
+
+ if (CMAKE_CONFIGURATION_TYPES)
+ foreach(suffix ${CMAKE_CONFIGURATION_TYPES})
+ string(TOUPPER ${suffix} _tbb_suffix_upper)
+ string(TOLOWER ${suffix} _tbb_suffix_lower)
+ set(CMAKE_${output_type}_OUTPUT_DIRECTORY_${_tbb_suffix_upper} ${CMAKE_BINARY_DIR}/${TBB_OUTPUT_DIR_BASE}_${_tbb_suffix_lower})
+ endforeach()
+ unset(_tbb_suffix_lower)
+ unset(_tbb_suffix_upper)
+ endif()
+endforeach()
+
+# -------------------------------------------------------------------
+
+# -------------------------------------------------------------------
+# Common dependencies
+set(THREADS_PREFER_PTHREAD_FLAG TRUE)
+find_package(Threads REQUIRED)
+# -------------------------------------------------------------------
+
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)
+
+file(GLOB FILES_WITH_EXTRA_TARGETS ${CMAKE_CURRENT_SOURCE_DIR}/cmake/*.cmake)
+foreach(FILE_WITH_EXTRA_TARGETS ${FILES_WITH_EXTRA_TARGETS})
+ include(${FILE_WITH_EXTRA_TARGETS})
+endforeach()
+
+set(TBB_COMPILER_SETTINGS_FILE ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compilers/${CMAKE_CXX_COMPILER_ID}.cmake)
+if (EXISTS ${TBB_COMPILER_SETTINGS_FILE})
+ include(${TBB_COMPILER_SETTINGS_FILE})
+else()
+ message(WARNING "TBB compiler settings not found ${TBB_COMPILER_SETTINGS_FILE}")
+endif()
+
+if (TBB_FIND_PACKAGE OR TBB_DIR)
+ # Allow specifying external TBB to test with.
+ # Do not add main targets and installation instructions in that case.
+ message(STATUS "Using external TBB for testing")
+ find_package(TBB REQUIRED)
+else()
+ add_subdirectory(src/tbb)
+ if (NOT "${CMAKE_SYSTEM_PROCESSOR}" MATCHES "mips")
+ add_subdirectory(src/tbbmalloc)
+ add_subdirectory(src/tbbmalloc_proxy)
+ if (TBB_NUMA_SUPPORT)
+ add_subdirectory(src/tbbbind)
+ endif()
+ endif()
+
+ # -------------------------------------------------------------------
+ # Installation instructions
+ include(CMakePackageConfigHelpers)
+
+ install(DIRECTORY include
+ DESTINATION .)
+
+ install(EXPORT ${CMAKE_PROJECT_NAME}Targets
+ NAMESPACE TBB::
+ DESTINATION lib/cmake/${CMAKE_PROJECT_NAME})
+ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_PROJECT_NAME}Config.cmake
+ "include(\${CMAKE_CURRENT_LIST_DIR}/${CMAKE_PROJECT_NAME}Targets.cmake)\n")
+
+ write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_PROJECT_NAME}ConfigVersion.cmake"
+ COMPATIBILITY AnyNewerVersion)
+
+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_PROJECT_NAME}Config.cmake"
+ "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_PROJECT_NAME}ConfigVersion.cmake"
+ DESTINATION lib/cmake/${CMAKE_PROJECT_NAME})
+ # -------------------------------------------------------------------
+endif()
+
+if (TBB_TEST)
+ enable_testing()
+ add_subdirectory(test)
+endif()
+
+if (TBB_EXAMPLES)
+ add_subdirectory(examples)
+endif()
+
+if (TBB_BENCH)
+ if (NOT EXISTS ${CMAKE_CURRENT_LIST_DIR}/benchmark)
+ message(FATAL_ERROR "Benchmarks are not supported yet")
+ endif()
+
+ enable_testing()
+ add_subdirectory(benchmark)
+endif()
+
+if (ANDROID_PLATFORM)
+ if (${ANDROID_STL} STREQUAL "c++_shared")
+ configure_file(
+ "${ANDROID_NDK}/sources/cxx-stl/llvm-libc++/libs/${ANDROID_ABI}/libc++_shared.so"
+ "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libc++_shared.so"
+ COPYONLY)
+ endif()
+ # This custom target may be implemented without separate CMake script, but it requires
+ # ADB(Android Debug Bridge) executable file availability, so to incapsulate this requirement
+ # only for corresponding custom target, it was implemented by this way.
+ add_custom_target(device_environment_cleanup COMMAND ${CMAKE_COMMAND}
+ -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/android/device_environment_cleanup.cmake)
+endif()
+
+if (TBB4PY_BUILD)
+ add_subdirectory(python)
+endif()
+
+# Keep it the last instruction.
+add_subdirectory(cmake/post_install)
diff --git a/Doxyfile b/Doxyfile
deleted file mode 100644
index 3c7727f84a..0000000000
--- a/Doxyfile
+++ /dev/null
@@ -1,1325 +0,0 @@
-# Doxyfile 1.4.7
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project
-#
-# All text after a hash (#) is considered a comment and will be ignored
-# The format is:
-# TAG = value [value, ...]
-# For lists items can also be appended using:
-# TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
-# by quotes) that should identify the project.
-
-PROJECT_NAME = "Intel(R) Threading Building Blocks Doxygen Documentation"
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number.
-# This could be handy for archiving the generated documentation or
-# if some version control system is used.
-
-PROJECT_NUMBER = "version 4.2.3"
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
-# base path where the generated documentation will be put.
-# If a relative path is entered, it will be relative to the location
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY =
-
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
-# 4096 sub-directories (in 2 levels) under the output directory of each output
-# format and will distribute the generated files over these directories.
-# Enabling this option can be useful when feeding doxygen a huge amount of
-# source files, where putting all generated files in the same directory would
-# otherwise cause performance problems for the file system.
-
-CREATE_SUBDIRS = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# The default language is English, other supported languages are:
-# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish,
-# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese,
-# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian,
-# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish,
-# Swedish, and Ukrainian.
-
-OUTPUT_LANGUAGE = English
-
-# This tag can be used to specify the encoding used in the generated output.
-# The encoding is not always determined by the language that is chosen,
-# but also whether or not the output is meant for Windows or non-Windows users.
-# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES
-# forces the Windows encoding (this is the default for the Windows binary),
-# whereas setting the tag to NO uses a Unix-style encoding (the default for
-# all platforms other than Windows).
-
-USE_WINDOWS_ENCODING = NO
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
-# include brief member descriptions after the members that are listed in
-# the file and class documentation (similar to JavaDoc).
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
-# the brief description of a member or function before the detailed description.
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator
-# that is used to form the text in various listings. Each string
-# in this list, if found as the leading text of the brief description, will be
-# stripped from the text and the result after processing the whole list, is
-# used as the annotated text. Otherwise, the brief description is used as-is.
-# If left blank, the following values are used ("$name" is automatically
-# replaced with the name of the entity): "The $name class" "The $name widget"
-# "The $name file" "is" "provides" "specifies" "contains"
-# "represents" "a" "an" "the"
-
-ABBREVIATE_BRIEF =
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# Doxygen will generate a detailed section even if there is only a brief
-# description.
-
-ALWAYS_DETAILED_SEC = NO
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-# inherited members of a class in the documentation of that class as if those
-# members were ordinary class members. Constructors, destructors and assignment
-# operators of the base classes will not be shown.
-
-INLINE_INHERITED_MEMB = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
-# path before files name in the file list and in the header files. If set
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
-# can be used to strip a user-defined part of the path. Stripping is
-# only done if one of the specified strings matches the left-hand part of
-# the path. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the
-# path to strip.
-
-STRIP_FROM_PATH =
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
-# the path mentioned in the documentation of a class, which tells
-# the reader which header file to include in order to use a class.
-# If left blank only the name of the header file containing the class
-# definition is used. Otherwise one should specify the include paths that
-# are normally passed to the compiler using the -I flag.
-
-STRIP_FROM_INC_PATH =
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
-# (but less readable) file names. This can be useful is your file systems
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES = YES
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
-# will interpret the first line (until the first dot) of a JavaDoc-style
-# comment as the brief description. If set to NO, the JavaDoc
-# comments will behave just like the Qt-style comments (thus requiring an
-# explicit @brief command for a brief description.
-
-JAVADOC_AUTOBRIEF = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
-# treat a multi-line C++ special comment block (i.e. a block of //! or ///
-# comments) as a brief description. This used to be the default behaviour.
-# The new default is to treat a multi-line C++ comment block as a detailed
-# description. Set this tag to YES if you prefer the old behaviour instead.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the DETAILS_AT_TOP tag is set to YES then Doxygen
-# will output the detailed description near the top, like JavaDoc.
-# If set to NO, the detailed description appears after the member
-# documentation.
-
-DETAILS_AT_TOP = NO
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
-# member inherits the documentation from any documented member that it
-# re-implements.
-
-INHERIT_DOCS = YES
-
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
-# a new page for each member. If set to NO, the documentation of a member will
-# be part of the file/class/namespace that contains it.
-
-SEPARATE_MEMBER_PAGES = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab.
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE = 8
-
-# This tag can be used to specify a number of aliases that acts
-# as commands in the documentation. An alias has the form "name=value".
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to
-# put the command \sideeffect (or @sideeffect) in the documentation, which
-# will result in a user-defined paragraph with heading "Side Effects:".
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES =
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
-# sources only. Doxygen will then generate output that is more tailored for C.
-# For instance, some of the names that are used will be different. The list
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C = NO
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
-# sources only. Doxygen will then generate output that is more tailored for Java.
-# For instance, namespaces will be presented as packages, qualified scopes
-# will look different, etc.
-
-OPTIMIZE_OUTPUT_JAVA = NO
-
-# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
-# according to the Markdown format, which allows for more readable
-# documentation. See http://daringfireball.net/projects/markdown/ for details.
-# The output of markdown processing is further processed by doxygen, so you can
-# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
-# case of backward compatibilities issues.
-# The default value is: YES.
-
-MARKDOWN_SUPPORT = YES
-
-# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up
-# to that level are automatically included in the table of contents, even if
-# they do not have an id attribute.
-# Note: This feature currently applies only to Markdown headings.
-# Minimum value: 0, maximum value: 99, default value: 0.
-# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
-
-TOC_INCLUDE_HEADINGS = 0
-
-# When enabled doxygen tries to link words that correspond to documented
-# classes, or namespaces to their corresponding documentation. Such a link can
-# be prevented in individual cases by putting a % sign in front of the word or
-# globally by setting AUTOLINK_SUPPORT to NO.
-# The default value is: YES.
-
-AUTOLINK_SUPPORT = YES
-
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to
-# include (a tag file for) the STL sources as input, then you should
-# set this tag to YES in order to let doxygen match functions declarations and
-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
-# func(std::string) {}). This also make the inheritance and collaboration
-# diagrams that involve STL classes more complete and accurate.
-
-BUILTIN_STL_SUPPORT = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES, then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC = NO
-
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
-# the same type (for instance a group of public functions) to be put as a
-# subgroup of that type (e.g. under the Public Functions section). Set it to
-# NO to prevent subgrouping. Alternatively, this can be done per class using
-# the \nosubgrouping command.
-
-SUBGROUPING = YES
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
-# documentation are documented, even if no documentation was available.
-# Private class members and static file members will be hidden unless
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL = YES
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
-# will be included in the documentation.
-
-EXTRACT_PRIVATE = YES
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file
-# will be included in the documentation.
-
-EXTRACT_STATIC = YES
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
-# defined locally in source files will be included in the documentation.
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES = YES
-
-# This flag is only useful for Objective-C code. When set to YES local
-# methods, which are defined in the implementation section but not in
-# the interface are included in the documentation.
-# If set to NO (the default) only methods in the interface are included.
-
-EXTRACT_LOCAL_METHODS = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
-# undocumented members of documented classes, files or namespaces.
-# If set to NO (the default) these members will be included in the
-# various overviews, but no documentation section is generated.
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy.
-# If set to NO (the default) these classes will be included in the various
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
-# friend (class|struct|union) declarations.
-# If set to NO (the default) these declarations will be included in the
-# documentation.
-
-HIDE_FRIEND_COMPOUNDS = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
-# documentation blocks found inside the body of a function.
-# If set to NO (the default) these blocks will be appended to the
-# function's detailed documentation block.
-
-HIDE_IN_BODY_DOCS = NO
-
-# The INTERNAL_DOCS tag determines if documentation
-# that is typed after a \internal command is included. If the tag is set
-# to NO (the default) then the documentation will be excluded.
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS = YES
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
-# file names in lower-case letters. If set to YES upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-
-CASE_SENSE_NAMES = YES
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
-# will show members with their full class and namespace scopes in the
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
-# will put a list of the files that are included by a file in the documentation
-# of that file.
-
-SHOW_INCLUDE_FILES = YES
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
-# is inserted in the documentation for inline members.
-
-INLINE_INFO = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
-# will sort the (detailed) documentation of file and class members
-# alphabetically by member name. If set to NO the members will appear in
-# declaration order.
-
-SORT_MEMBER_DOCS = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
-# brief documentation of file, namespace and class members alphabetically
-# by member name. If set to NO (the default) the members will appear in
-# declaration order.
-
-SORT_BRIEF_DOCS = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
-# sorted by fully-qualified names, including namespaces. If set to
-# NO (the default), the class list will be sorted only by class name,
-# not including the namespace part.
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the
-# alphabetical list.
-
-SORT_BY_SCOPE_NAME = NO
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or
-# disable (NO) the todo list. This list is created by putting \todo
-# commands in the documentation.
-
-GENERATE_TODOLIST = NO
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or
-# disable (NO) the test list. This list is created by putting \test
-# commands in the documentation.
-
-GENERATE_TESTLIST = NO
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or
-# disable (NO) the bug list. This list is created by putting \bug
-# commands in the documentation.
-
-GENERATE_BUGLIST = NO
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
-# disable (NO) the deprecated list. This list is created by putting
-# \deprecated commands in the documentation.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS = INTERNAL
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
-# the initial value of a variable or define consists of for it to appear in
-# the documentation. If the initializer consists of more lines than specified
-# here it will be hidden. Use a value of 0 to hide initializers completely.
-# The appearance of the initializer of individual variables and defines in the
-# documentation can be controlled using \showinitializer or \hideinitializer
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
-# at the bottom of the documentation of classes and structs. If set to YES the
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES = YES
-
-# If the sources in your project are distributed over multiple directories
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
-# in the documentation. The default is NO.
-
-SHOW_DIRECTORIES = YES
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that
-# doxygen should invoke to get the current version for each file (typically from the
-# version control system). Doxygen will invoke the program by executing (via
-# popen()) the command , where is the value of
-# the FILE_VERSION_FILTER tag, and is the name of an input file
-# provided by doxygen. Whatever the program writes to standard output
-# is used as the file version. See the manual for examples.
-
-FILE_VERSION_FILTER =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated by doxygen. Possible values are YES and NO. If left blank
-# NO is used.
-
-WARNINGS = YES
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED = YES
-
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some
-# parameters in a documented function, or documenting parameters that
-# don't exist or using markup commands wrongly.
-
-WARN_IF_DOC_ERROR = YES
-
-# This WARN_NO_PARAMDOC option can be abled to get warnings for
-# functions that are documented, but have no documentation for their parameters
-# or return value. If set to NO (the default) doxygen will only warn about
-# wrong or incomplete parameter documentation, but not about the absence of
-# documentation.
-
-WARN_NO_PARAMDOC = NO
-
-# The WARN_FORMAT tag determines the format of the warning messages that
-# doxygen can produce. The string should contain the $file, $line, and $text
-# tags, which will be replaced by the file and line number from which the
-# warning originated and the warning text. Optionally the format may contain
-# $version, which will be replaced by the version of the file (if it could
-# be obtained via FILE_VERSION_FILTER)
-
-WARN_FORMAT = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning
-# and error messages should be written. If left blank the output is written
-# to stderr.
-
-WARN_LOGFILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain
-# documented source files. You may enter file names like "myfile.cpp" or
-# directories like "/usr/src/myproject". Separate the files or directories
-# with spaces.
-
-INPUT = include/ src/tbb/
-
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank the following patterns are tested:
-# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
-# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py
-
-FILE_PATTERNS =
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories
-# should be searched for input files as well. Possible values are YES and NO.
-# If left blank NO is used.
-
-RECURSIVE = YES
-
-# The EXCLUDE tag can be used to specify files and/or directories that should
-# excluded from the INPUT source files. This way you can easily exclude a
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-
-EXCLUDE =
-
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
-# directories that are symbolic links (a Unix filesystem feature) are excluded
-# from the input.
-
-EXCLUDE_SYMLINKS = NO
-
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories. Note that the wildcards are matched
-# against the file with absolute path, so to exclude all test directories
-# for example use the pattern */test/*
-
-EXCLUDE_PATTERNS =
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or
-# directories that contain example code fragments that are included (see
-# the \include command).
-
-EXAMPLE_PATH =
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank all files are included.
-
-EXAMPLE_PATTERNS =
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude
-# commands irrespective of the value of the RECURSIVE tag.
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or
-# directories that contain image that are included in the documentation (see
-# the \image command).
-
-IMAGE_PATH =
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command , where
-# is the value of the INPUT_FILTER tag, and is the name of an
-# input file. Doxygen will then use the output that the filter program writes
-# to standard output. If FILTER_PATTERNS is specified, this tag will be
-# ignored.
-
-INPUT_FILTER =
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis. Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match. The filters are a list of the form:
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
-# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
-# is applied to all files.
-
-FILTER_PATTERNS =
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will be used to filter the input files when producing source
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
-FILTER_SOURCE_FILES = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will
-# be generated. Documented entities will be cross-referenced with these sources.
-# Note: To get rid of all source code in the generated output, make sure also
-# VERBATIM_HEADERS is set to NO.
-
-SOURCE_BROWSER = YES
-
-# Setting the INLINE_SOURCES tag to YES will include the body
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES = YES
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
-# doxygen to hide any special comment blocks from generated source code
-# fragments. Normal C and C++ comments will always remain visible.
-
-STRIP_CODE_COMMENTS = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES (the default)
-# then for each documented function all documented
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = YES
-
-# If the REFERENCES_RELATION tag is set to YES (the default)
-# then for each documented function all documented entities
-# called/used by that function will be listed.
-
-REFERENCES_RELATION = YES
-
-# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
-# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
-# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
-# link to the source code. Otherwise they will link to the documentstion.
-
-REFERENCES_LINK_SOURCE = NO
-
-# If the USE_HTAGS tag is set to YES then the references to source code
-# will point to the HTML generated by the htags(1) tool instead of doxygen
-# built-in source browser. The htags tool is part of GNU's global source
-# tagging system (see http://www.gnu.org/software/global/global.html). You
-# will need version 4.8.6 or higher.
-
-USE_HTAGS = NO
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
-# will generate a verbatim copy of the header file for each class for
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
-# of all compounds will be generated. Enable this if the project
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX = YES
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX = 5
-
-# In case all classes in a project start with a common prefix, all
-# classes will be put under the same header in the alphabetical index.
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
-# generate HTML output.
-
-GENERATE_HTML = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT = html
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
-# doxygen will generate files with .html extension.
-
-HTML_FILE_EXTENSION = .html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard header.
-
-HTML_HEADER =
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard footer.
-
-HTML_FOOTER = doc/copyright_brand_disclaimer_doxygen.txt
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
-# style sheet that is used by each HTML page. It can be used to
-# fine-tune the look of the HTML output. If the tag is left blank doxygen
-# will generate a default style sheet. Note that doxygen will try to copy
-# the style sheet file to the HTML output directory, so don't put your own
-# stylesheet in the HTML output directory as well, or it will be erased!
-
-HTML_STYLESHEET =
-
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
-# files or namespaces will be aligned in HTML using tables. If set to
-# NO a bullet list will be used.
-
-HTML_ALIGN_MEMBERS = YES
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
-# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
-# be used to specify the file name of the resulting .chm file. You
-# can add a path in front of the file if the result should not be
-# written to the html output directory.
-
-CHM_FILE =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
-# be used to specify the location (absolute path including file name) of
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
-# the HTML help compiler on the generated index.hhp.
-
-HHC_LOCATION =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
-# controls if a separate .chi index file is generated (YES) or that
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
-# controls whether a binary table of contents is generated (YES) or a
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members
-# to the contents of the HTML help documentation and to the tree view.
-
-TOC_EXPAND = NO
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
-# top of each HTML page. The value NO (the default) enables the index and
-# the value YES disables it.
-
-DISABLE_INDEX = NO
-
-# This tag can be used to set the number of enum values (range [1..20])
-# that doxygen will group on one line in the generated HTML documentation.
-
-ENUM_VALUES_PER_LINE = 4
-
-# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
-# generated containing a tree-like index structure (just like the one that
-# is generated for HTML Help). For this to work a browser that supports
-# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
-# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
-# probably better off using the HTML help feature.
-
-GENERATE_TREEVIEW = YES
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
-# used to set the initial width (in pixels) of the frame in which the tree
-# is shown.
-
-TREEVIEW_WIDTH = 250
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
-# generate Latex output.
-
-GENERATE_LATEX = NO
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked. If left blank `latex' will be used as the default command name.
-
-LATEX_CMD_NAME = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
-# generate index for LaTeX. If left blank `makeindex' will be used as the
-# default command name.
-
-MAKEINDEX_CMD_NAME = makeindex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
-# LaTeX documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_LATEX = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used
-# by the printer. Possible values are: a4, a4wide, letter, legal and
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE = a4wide
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES =
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
-# the generated latex document. The header should contain everything until
-# the first chapter. If it is left blank doxygen will generate a
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER =
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will
-# contain links (just like the HTML output) instead of page references
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS = NO
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
-# plain latex in the generated Makefile. Set this option to YES to get a
-# higher quality PDF documentation.
-
-USE_PDFLATEX = NO
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
-# command to the generated LaTeX files. This will instruct LaTeX to keep
-# running if errors occur, instead of asking the user for help.
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE = NO
-
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not
-# include the index chapters (such as File Index, Compound Index, etc.)
-# in the output.
-
-LATEX_HIDE_INDICES = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
-# The RTF output is optimized for Word 97 and may not look very pretty with
-# other RTF readers or editors.
-
-GENERATE_RTF = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
-# RTF documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_RTF = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
-# will contain hyperlink fields. The RTF file will
-# contain links (just like the HTML output) instead of page references.
-# This makes the output suitable for online browsing using WORD or other
-# programs which support those fields.
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's
-# config file, i.e. a series of assignments. You only have to provide
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE =
-
-# Set optional variables used in the generation of an rtf document.
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
-# generate man pages
-
-GENERATE_MAN = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT = man
-
-# The MAN_EXTENSION tag determines the extension that is added to
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION = .3
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
-# then it will generate one additional man file for each entity
-# documented in the real man page(s). These additional files
-# only source the real man page, but without them the man command
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will
-# generate an XML file that captures the structure of
-# the code including all documentation.
-
-GENERATE_XML = NO
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `xml' will be used as the default path.
-
-XML_OUTPUT = xml
-
-# The XML_SCHEMA tag can be used to specify an XML schema,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_SCHEMA =
-
-# The XML_DTD tag can be used to specify an XML DTD,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
-
-XML_DTD =
-
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
-# dump the program listings (including syntax highlighting
-# and cross-referencing information) to the XML output. Note that
-# enabling this will significantly increase the size of the XML output.
-
-XML_PROGRAMLISTING = NO
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
-# generate an AutoGen Definitions (see autogen.sf.net) file
-# that captures the structure of the code including all
-# documentation. Note that this feature is still experimental
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will
-# generate a Perl module file that captures the structure of
-# the code including all documentation. Note that this
-# feature is still experimental and incomplete at the
-# moment.
-
-GENERATE_PERLMOD = NO
-
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able
-# to generate PDF and DVI output from the Perl module output.
-
-PERLMOD_LATEX = NO
-
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
-# nicely formatted so it can be parsed by a human reader. This is useful
-# if you want to understand what is going on. On the other hand, if this
-# tag is set to NO the size of the Perl module output will be much smaller
-# and Perl will parse it just the same.
-
-PERLMOD_PRETTY = YES
-
-# The names of the make variables in the generated doxyrules.make file
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
-# This is useful so different doxyrules.make files included by the same
-# Makefile don't overwrite each other's variables.
-
-PERLMOD_MAKEVAR_PREFIX =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
-# evaluate all C-preprocessor directives found in the sources and include
-# files.
-
-ENABLE_PREPROCESSING = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
-# names in the source code. If set to NO (the default) only conditional
-# compilation will be performed. Macro expansion can be done in a controlled
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
-# then the macro expansion is limited to the macros specified with the
-# PREDEFINED and EXPAND_AS_DEFINED tags.
-
-EXPAND_ONLY_PREDEF = NO
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
-# in the INCLUDE_PATH (see below) will be search if a #include is found.
-
-SEARCH_INCLUDES = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by
-# the preprocessor.
-
-INCLUDE_PATH =
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will
-# be used.
-
-INCLUDE_FILE_PATTERNS =
-
-# The PREDEFINED tag can be used to specify one or more macro names that
-# are defined before the preprocessor is started (similar to the -D option of
-# gcc). The argument of the tag is a list of macros of the form: name
-# or name=definition (no spaces). If the definition and the = are
-# omitted =1 is assumed. To prevent a macro definition from being
-# undefined via #undef or recursively expanded use the := operator
-# instead of the = operator.
-
-PREDEFINED = TBB_PREVIEW_FLOW_GRAPH_FEATURES \
- TBB_PREVIEW_FLOW_GRAPH_NODES \
- __TBB_PREVIEW_OPENCL_NODE \
- __TBB_CPP11_RVALUE_REF_PRESENT \
- __TBB_CPP11_VARIADIC_TEMPLATES_PRESENT \
- __TBB_IMPLICIT_MOVE_PRESENT \
- __TBB_EXCEPTION_PTR_PRESENT \
- __TBB_STATIC_ASSERT_PRESENT \
- __TBB_CPP11_TUPLE_PRESENT \
- __TBB_INITIALIZER_LISTS_PRESENT \
- __TBB_CONSTEXPR_PRESENT \
- __TBB_DEFAULTED_AND_DELETED_FUNC_PRESENT \
- __TBB_NOEXCEPT_PRESENT \
- __TBB_CPP11_STD_BEGIN_END_PRESENT \
- __TBB_CPP11_AUTO_PRESENT \
- __TBB_CPP11_DECLTYPE_PRESENT \
- __TBB_CPP11_LAMBDAS_PRESENT \
- __TBB_CPP11_DEFAULT_FUNC_TEMPLATE_ARGS_PRESENT \
- __TBB_OVERRIDE_PRESENT \
- __TBB_ALIGNAS_PRESENT \
- __TBB_CPP11_TEMPLATE_ALIASES_PRESENT \
- __TBB_FLOW_GRAPH_CPP11_FEATURES \
- __TBB_PREVIEW_STREAMING_NODE
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
-# this tag can be used to specify a list of macro names that should be expanded.
-# The macro definition that is found in the sources will be used.
-# Use the PREDEFINED tag if you want to use a different macro definition.
-
-EXPAND_AS_DEFINED =
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
-# doxygen's preprocessor will remove all function-like macros that are alone
-# on a line, have an all uppercase name, and do not end with a semicolon. Such
-# function macros are typically used for boiler-plate code, and will confuse
-# the parser if not removed.
-
-SKIP_FUNCTION_MACROS = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES option can be used to specify one or more tagfiles.
-# Optionally an initial location of the external documentation
-# can be added for each tagfile. The format of a tag file without
-# this location is as follows:
-# TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-# TAGFILES = file1=loc1 "file2 = loc2" ...
-# where "loc1" and "loc2" can be relative or absolute paths or
-# URLs. If a location is present for each tag, the installdox tool
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen
-# is run, you must also specify the path to the tagfile here.
-
-TAGFILES =
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE =
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed
-# in the class index. If set to NO only the inherited external classes
-# will be listed.
-
-ALLEXTERNALS = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will
-# be listed.
-
-EXTERNAL_GROUPS = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
-# or super classes. Setting the tag to NO turns the diagrams off. Note that
-# this option is superseded by the HAVE_DOT option below. This is only a
-# fallback. It is recommended to install and use dot, since it yields more
-# powerful graphs.
-
-CLASS_DIAGRAMS = YES
-
-# If set to YES, the inheritance and collaboration graphs will hide
-# inheritance and usage relations if the target is undocumented
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz, a graph visualization
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT = YES
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect inheritance relations. Setting this tag to YES will force the
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH = YES
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect implementation dependencies (inheritance, containment, and
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH = YES
-
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for groups, showing the direct groups dependencies
-
-GROUP_GRAPHS = YES
-
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
-# Language.
-
-UML_LOOK = YES
-
-# If set to YES, the inheritance and collaboration graphs will show the
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
-# tags are set to YES then doxygen will generate a graph for each documented
-# file showing the direct and indirect include dependencies of the file with
-# other documented files.
-
-INCLUDE_GRAPH = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
-# documented header file showing the documented files that directly or
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH = YES
-
-# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will
-# generate a call dependency graph for every global function or class method.
-# Note that enabling this option will significantly increase the time of a run.
-# So in most cases it will be better to enable call graphs for selected
-# functions only using the \callgraph command.
-
-CALL_GRAPH = YES
-
-# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will
-# generate a caller dependency graph for every global function or class method.
-# Note that enabling this option will significantly increase the time of a run.
-# So in most cases it will be better to enable caller graphs for selected
-# functions only using the \callergraph command.
-
-CALLER_GRAPH = YES
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
-# will graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY = YES
-
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
-# then doxygen will show the dependencies a directory has on other directories
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
-
-DIRECTORY_GRAPH = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot. Possible values are png, jpg, or gif
-# If left blank png will be used.
-
-DOT_IMAGE_FORMAT = svg
-
-# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
-# enable generation of interactive SVG images that allow zooming and panning.
-#
-# Note that this requires a modern browser other than Internet Explorer. Tested
-# and working are Firefox, Chrome, Safari, and Opera.
-# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
-# the SVG files visible. Older versions of IE do not have SVG support.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-INTERACTIVE_SVG = YES
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found in the path.
-
-DOT_PATH =
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the
-# \dotfile command).
-
-DOTFILE_DIRS =
-
-# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than
-# this value, doxygen will try to truncate the graph, so that it fits within
-# the specified constraint. Beware that most browsers cannot cope with very
-# large images.
-
-MAX_DOT_GRAPH_WIDTH = 1024
-
-# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than
-# this value, doxygen will try to truncate the graph, so that it fits within
-# the specified constraint. Beware that most browsers cannot cope with very
-# large images.
-
-MAX_DOT_GRAPH_HEIGHT = 1024
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
-# graphs generated by dot. A depth value of 3 means that only nodes reachable
-# from the root by following a path via at most 3 edges will be shown. Nodes
-# that lay further from the root node will be omitted. Note that setting this
-# option to 1 or 2 may greatly reduce the computation time needed for large
-# code bases. Also note that a graph may be further truncated if the graph's
-# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH
-# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default),
-# the graph is not depth-constrained.
-
-# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
-# that will be shown in the graph. If the number of nodes in a graph becomes
-# larger than this value, doxygen will truncate the graph, which is visualized
-# by representing a node as a red box. Note that doxygen if the number of direct
-# children of the root node in a graph is already larger than
-# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
-# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
-# Minimum value: 0, maximum value: 10000, default value: 50.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_GRAPH_MAX_NODES = 200
-
-MAX_DOT_GRAPH_DEPTH = 0
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, which results in a white background.
-# Warning: Depending on the platform used, enabling this option may lead to
-# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
-# read).
-
-DOT_TRANSPARENT = NO
-
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
-# files in one run (i.e. multiple -o and -T options on the command line). This
-# makes dot run faster, but since only newer versions of dot (>1.8.10)
-# support this, this feature is disabled by default.
-
-DOT_MULTI_TARGETS = YES
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
-# generate a legend page explaining the meaning of the various boxes and
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
-# remove the intermediate dot files that are used to generate
-# the various graphs.
-
-DOT_CLEANUP = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine
-#---------------------------------------------------------------------------
-
-# The SEARCHENGINE tag specifies whether or not a search engine should be
-# used. If set to NO the values of all tags below this one will be ignored.
-
-SEARCHENGINE = YES
diff --git a/LICENSE b/LICENSE.txt
similarity index 100%
rename from LICENSE
rename to LICENSE.txt
diff --git a/Makefile b/Makefile
deleted file mode 100644
index be0420d965..0000000000
--- a/Makefile
+++ /dev/null
@@ -1,73 +0,0 @@
-# Copyright (c) 2005-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-tbb_root?=.
-include $(tbb_root)/build/common.inc
-.PHONY: default all tbb tbbmalloc test examples
-
-#workaround for non-depend targets tbb and tbbmalloc which both depend on version_string.ver
-#According to documentation, recursively invoked make commands can process their targets in parallel
-.NOTPARALLEL: tbb tbbmalloc
-
-default: tbb tbbmalloc
-
-all: tbb tbbmalloc test examples
-
-tbb: mkdir
- $(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.tbb cfg=debug
- $(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbb cfg=release
-
-tbbmalloc: mkdir
- $(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=debug malloc
- $(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=release malloc
-
-test: tbb tbbmalloc
- -$(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=debug malloc_test
- -$(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.test cfg=debug
- -$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=release malloc_test
- -$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.test cfg=release
-
-examples: tbb tbbmalloc
- $(MAKE) -C examples -r -f Makefile tbb_root=.. release test
-
-python: tbb
- $(MAKE) -C "$(work_dir)_release" -rf $(tbb_root)/python/Makefile install
-
-doxygen:
- doxygen Doxyfile
-
-.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/README b/README
deleted file mode 100644
index 05de5941f4..0000000000
--- a/README
+++ /dev/null
@@ -1,11 +0,0 @@
-Intel(R) oneAPI Threading Building Blocks (oneTBB) - 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/README.md b/README.md
index cd3c8448c7..d6c3470976 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,4 @@
# oneAPI Threading Building Blocks (Beta)
-[![Stable release](https://img.shields.io/badge/version-2021.1--beta05-yellow.svg)](https://github.com/oneapi-src/oneTBB/releases/tag/v2021.1-beta05)
[![Apache License Version 2.0](https://img.shields.io/badge/license-Apache_2.0-green.svg)](LICENSE)
oneAPI Threading Building Blocks (oneTBB) lets you easily write parallel C++ programs that take
@@ -10,7 +9,8 @@ Here are [Release Notes]( https://software.intel.com/en-us/articles/intel-oneapi
[System Requirements](https://software.intel.com/en-us/articles/intel-oneapi-threading-building-blocks-system-requirements).
## Documentation
-* [TBB general documentation](https://software.intel.com/en-us/oneapi-tbb-documentation)
+* [oneTBB documentation](https://software.intel.com/en-us/oneapi-tbb-documentation)
+* README for build system: [cmake/README.md](cmake/README.md)
## Support
Please report issues and suggestions via
@@ -18,7 +18,7 @@ Please report issues and suggestions via
[TBB forum](http://software.intel.com/en-us/forums/intel-threading-building-blocks/).
## How to Contribute
-To contribute to TBB, please open a GitHub pull request (preferred) or send us a patch by e-mail.
+To contribute to oneTBB, please open a GitHub pull request (preferred) or send us a patch by e-mail.
oneAPI Threading Building Blocks is licensed under [Apache License, Version 2.0](LICENSE).
By its terms, contributions submitted to the project are also done under that license.
@@ -28,4 +28,4 @@ By its terms, contributions submitted to the project are also done under that li
------------------------------------------------------------------------
Intel and the Intel logo are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or other countries.
-\* Other names and brands may be claimed as the property of others.
+\* Other names and brands may be claimed as the property of others.
\ No newline at end of file
diff --git a/build/AIX.gcc.inc b/build/AIX.gcc.inc
deleted file mode 100644
index 2f45d73944..0000000000
--- a/build/AIX.gcc.inc
+++ /dev/null
@@ -1,71 +0,0 @@
-# Copyright (c) 2005-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the 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
-
-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
-
-#------------------------------------------------------------------------------
-# End of setting tbbmalloc data.
-#------------------------------------------------------------------------------
diff --git a/build/AIX.inc b/build/AIX.inc
deleted file mode 100644
index e02a6d312c..0000000000
--- a/build/AIX.inc
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright (c) 2005-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-ifndef arch
- arch:=$(shell uname -p)
- export arch
-endif
-
-ifndef runtime
- gcc_version:=$(shell gcc -dumpfullversion -dumpversion)
- 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 $(VERSION_FLAGS) >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)
-
-TEST_LAUNCHER=sh $(tbb_root)/build/test_launcher.sh $(largs)
diff --git a/build/BSD.clang.inc b/build/BSD.clang.inc
deleted file mode 100644
index 7e9e4ebcc9..0000000000
--- a/build/BSD.clang.inc
+++ /dev/null
@@ -1,106 +0,0 @@
-# Copyright (c) 2005-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the 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 = -Wextra -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor
-WARNING_SUPPRESS = -Wno-parentheses -Wno-non-virtual-dtor -Wno-dangling-else
-DYLIB_KEY = -shared
-EXPORT_KEY = -Wl,--version-script,
-LIBDL =
-
-CPLUS = clang++
-CONLY = clang
-LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
-LIBS += -lpthread
-LINK_FLAGS = -Wl,-rpath-link=. -Wl,-rpath=. -rdynamic
-C_FLAGS = $(CPLUS_FLAGS)
-
-ifeq ($(cfg), release)
- CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD
-endif
-ifeq ($(cfg), debug)
- CPLUS_FLAGS = -DTBB_USE_DEBUG $(ITT_NOTIFY) -g -O0 -DUSE_PTHREAD
-endif
-
-ifneq (,$(stdlib))
- CPLUS_FLAGS += -stdlib=$(stdlib)
- LIB_LINK_FLAGS += -stdlib=$(stdlib)
-endif
-
-TBB_ASM.OBJ=
-MALLOC_ASM.OBJ=
-
-ifeq (intel64,$(arch))
- ITT_NOTIFY = -DDO_ITT_NOTIFY
- CPLUS_FLAGS += -m64
- LIB_LINK_FLAGS += -m64
-endif
-
-ifeq (ia32,$(arch))
- ITT_NOTIFY = -DDO_ITT_NOTIFY
- CPLUS_FLAGS += -m32 -march=pentium4
- LIB_LINK_FLAGS += -m32
-endif
-
-ifeq (ppc64,$(arch))
- CPLUS_FLAGS += -m64
- LIB_LINK_FLAGS += -m64
-endif
-
-ifeq (ppc32,$(arch))
- CPLUS_FLAGS += -m32
- LIB_LINK_FLAGS += -m32
-endif
-
-ifeq (bg,$(arch))
- CPLUS = bgclang++
- CONLY = bgclang
-endif
-
-#------------------------------------------------------------------------------
-# Setting assembler data.
-#------------------------------------------------------------------------------
-ASM = 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
-
-#------------------------------------------------------------------------------
-# End of setting tbbmalloc data.
-#------------------------------------------------------------------------------
diff --git a/build/BSD.inc b/build/BSD.inc
deleted file mode 100644
index e5ea784d4f..0000000000
--- a/build/BSD.inc
+++ /dev/null
@@ -1,70 +0,0 @@
-# Copyright (c) 2005-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the 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
- clang_version:=$(shell clang --version | sed -n "1s/.*version \(.*[0-9]\) .*/\1/p")
- os_version:=$(shell uname -r)
- os_kernel_version:=$(shell uname -r | sed -e 's/-.*$$//')
- export runtime:=cc$(clang_version)_kernel$(os_kernel_version)
-endif
-
-native_compiler := clang
-export compiler ?= clang
-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 $(VERSION_FLAGS) >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)
-
-TEST_LAUNCHER=sh $(tbb_root)/build/test_launcher.sh $(largs)
diff --git a/build/FreeBSD.clang.inc b/build/FreeBSD.clang.inc
deleted file mode 100644
index f4cdf1287b..0000000000
--- a/build/FreeBSD.clang.inc
+++ /dev/null
@@ -1,17 +0,0 @@
-# Copyright (c) 2005-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-include $(tbb_root)/build/BSD.clang.inc
-
-LIBS += -lrt
diff --git a/build/FreeBSD.gcc.inc b/build/FreeBSD.gcc.inc
deleted file mode 100644
index 7bd8b07314..0000000000
--- a/build/FreeBSD.gcc.inc
+++ /dev/null
@@ -1,89 +0,0 @@
-# Copyright (c) 2005-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the 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
-WARNING_SUPPRESS = -Wno-parentheses
-
-CPLUS = g++
-CONLY = gcc
-LIB_LINK_FLAGS = -shared
-LIBS = -lpthread
-C_FLAGS = $(CPLUS_FLAGS)
-
-# gcc 6.0 and later have -flifetime-dse option that controls
-# elimination of stores done outside the object lifetime
-ifneq (,$(shell gcc -dumpfullversion -dumpversion | egrep "^([6-9]|1[0-9])"))
- # keep pre-contruction stores for zero initialization
- DSE_KEY = -flifetime-dse=1
-endif
-
-ifeq ($(cfg), release)
- CPLUS_FLAGS = -g -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 architecture, 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
-
-#------------------------------------------------------------------------------
-# End of setting tbbmalloc data.
-#------------------------------------------------------------------------------
diff --git a/build/FreeBSD.inc b/build/FreeBSD.inc
deleted file mode 100644
index 8b85bf0284..0000000000
--- a/build/FreeBSD.inc
+++ /dev/null
@@ -1,15 +0,0 @@
-# Copyright (c) 2005-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-include $(tbb_root)/build/BSD.inc
diff --git a/build/Makefile.tbb b/build/Makefile.tbb
deleted file mode 100644
index b744662b08..0000000000
--- a/build/Makefile.tbb
+++ /dev/null
@@ -1,114 +0,0 @@
-# Copyright (c) 2005-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-#------------------------------------------------------------------------------
-# Define rules for making the TBB shared library.
-#------------------------------------------------------------------------------
-
-tbb_root ?= "$(TBBROOT)"
-BUILDING_PHASE=1
-include $(tbb_root)/build/common.inc
-CPLUS_FLAGS += $(SDL_FLAGS)
-DEBUG_SUFFIX=$(findstring _debug,_$(cfg))
-
-#------------------------------------------------------------
-# Define static pattern rules dealing with .cpp source files
-#------------------------------------------------------------
-$(warning CONFIG: cfg=$(cfg) arch=$(arch) compiler=$(compiler) target=$(target) 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) $(DSE_KEY) $(DEFINE_KEY)__TBB_BUILD=1 $(DEFINE_KEY)__TBB_LEGACY_MODE=1
-
-# 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) \
- x86_rtm_rw_mutex.$(OBJ) \
- spin_mutex.$(OBJ) \
- critical_section.$(OBJ) \
- mutex.$(OBJ) \
- recursive_mutex.$(OBJ) \
- condition_variable.$(OBJ) \
- tbb_thread.$(OBJ) \
- concurrent_monitor.$(OBJ) \
- semaphore.$(OBJ) \
- private_server.$(OBJ) \
- rml_tbb.$(OBJ) \
- tbb_misc.$(OBJ) \
- tbb_misc_ex.$(OBJ) \
- task.$(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 dependencies
--include *.d
diff --git a/build/Makefile.tbbmalloc b/build/Makefile.tbbmalloc
deleted file mode 100644
index 109ba2586f..0000000000
--- a/build/Makefile.tbbmalloc
+++ /dev/null
@@ -1,256 +0,0 @@
-# Copyright (c) 2005-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# default target
-default_malloc: malloc malloc_test
-
-tbb_root ?= $(TBBROOT)
-BUILDING_PHASE=1
-TEST_RESOURCE = $(MALLOC.RES)
-TESTFILE=tbbmalloc
-include $(tbb_root)/build/common.inc
-DEBUG_SUFFIX=$(findstring _debug,$(call cross_cfg,_$(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)
-
-TEST_SUFFIXES=proxy
-TEST_PREREQUISITE+=$(MALLOC.LIB)
-LINK_FILES+=$(LINK_MALLOC.LIB)
-include $(tbb_root)/build/common_rules.inc
-
-ORIG_CPLUS_FLAGS:=$(CPLUS_FLAGS)
-ORIG_INCLUDES:=$(INCLUDES)
-ORIG_LINK_MALLOC.LIB:=$(LINK_MALLOC.LIB)
-
-#------------------------------------------------------
-# 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 += $(DEFINE_KEY)__TBBMALLOC_BUILD=1 $(DEFINE_KEY)__TBB_LEGACY_MODE=1
-M_INCLUDES := $(INCLUDES) $(INCLUDE_KEY)$(MALLOC_ROOT) $(INCLUDE_KEY)$(MALLOC_SOURCE_ROOT)
-
-# Suppress superfluous warnings for TBBMalloc compilation
-$(MALLOC.OBJ): M_CPLUS_FLAGS := $(subst $(WARNING_KEY),,$(M_CPLUS_FLAGS)) $(WARNING_SUPPRESS)
-# Suppress superfluous warnings for TBBMalloc proxy compilation
-$(PROXY.OBJ): CPLUS_FLAGS += $(WARNING_SUPPRESS)
-
-frontend.$(OBJ): frontend.cpp version_string.ver
- $(CPLUS) $(COMPILE_ONLY) $(M_CPLUS_FLAGS) $(PIC_KEY) $(DSE_KEY) $(M_INCLUDES) $(INCLUDE_KEY). $<
-
-$(PROXY.OBJ): %.$(OBJ): %.cpp
- $(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS) $(PIC_KEY) $(DSE_KEY) $(DEFINE_KEY)__TBBMALLOC_BUILD=1 $(M_INCLUDES) $<
-
-$(MALLOC_CPLUS.OBJ): %.$(OBJ): %.cpp
- $(CPLUS) $(COMPILE_ONLY) $(M_CPLUS_FLAGS) $(PIC_KEY) $(DSE_KEY) $(M_INCLUDES) $<
-
-itt_notify_malloc.$(OBJ): itt_notify.cpp
- $(CPLUS) $(COMPILE_ONLY) $(M_CPLUS_FLAGS) $(PIC_KEY) $(DSE_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) $< $(M_CPLUS_FLAGS) $(WARNING_SUPPRESS) $(INCLUDES) > $@
-
-MALLOC_LINK_FLAGS += $(EXPORT_KEY)tbbmalloc.def
-$(MALLOC.DLL): tbbmalloc.def
-endif
-
-$(MALLOC.DLL) $(MALLOCPROXY.DLL): CPLUS_FLAGS += $(SDL_FLAGS)
-$(MALLOC.DLL) $(MALLOCPROXY.DLL): M_CPLUS_FLAGS += $(SDL_FLAGS)
-$(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) $(WARNING_SUPPRESS) $(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
-#------------------------------------------------------
-
-# --------- The list of TBBMalloc unit tests ----------
-MALLOC_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) \
- test_malloc_pure_c.$(TEST_EXT) \
- test_malloc_whitebox.$(TEST_EXT) \
- test_malloc_used_by_lib.$(TEST_EXT) \
- test_malloc_lib_unload.$(TEST_EXT) \
- test_malloc_shutdown_hang.$(TEST_EXT)
-ifneq (,$(MALLOCPROXY.DLL))
-MALLOC_TESTS += test_malloc_overload.$(TEST_EXT) \
- test_malloc_overload_proxy.$(TEST_EXT) \
- test_malloc_overload_disable.$(TEST_EXT) \
- test_malloc_atexit.$(TEST_EXT) \
- test_malloc_new_handler.$(TEST_EXT)
-endif
-# -----------------------------------------------------
-
-# ------------ Set test specific variables ------------
-# TODO: implement accurate warning suppression for tests to unify with Makefile.test.
-$(MALLOC_TESTS): CPLUS_FLAGS += $(TEST_WARNING_KEY) $(if $(no_exceptions),$(DEFINE_KEY)__TBB_TEST_NO_EXCEPTIONS=1)
-$(MALLOC_TESTS): M_CPLUS_FLAGS += $(TEST_WARNING_KEY) $(if $(no_exceptions),$(DEFINE_KEY)__TBB_TEST_NO_EXCEPTIONS=1)
-$(MALLOC_TESTS): INCLUDES += $(INCLUDE_TEST_HEADERS)
-$(MALLOC_TESTS): M_INCLUDES += $(INCLUDE_TEST_HEADERS)
-
-ifeq (windows.gcc,$(tbb_os).$(compiler))
-test_malloc_overload.$(TEST_EXT): LIBS += $(MALLOCPROXY.LIB)
-endif
-
-MALLOC_M_CPLUS_TESTS = test_malloc_whitebox.$(TEST_EXT) test_malloc_lib_unload.$(TEST_EXT) \
- test_malloc_used_by_lib.$(TEST_EXT)
-MALLOC_NO_LIB_TESTS = test_malloc_whitebox.$(TEST_EXT) test_malloc_lib_unload.$(TEST_EXT) \
- test_malloc_used_by_lib.$(TEST_EXT) test_malloc_overload.$(TEST_EXT)
-MALLOC_LINK_PROXY_TESTS = test_malloc_overload_proxy.$(TEST_EXT) test_malloc_new_handler.$(TEST_EXT)
-MALLOC_ADD_DLL_TESTS = test_malloc_lib_unload.$(TEST_EXT) test_malloc_used_by_lib.$(TEST_EXT) \
- test_malloc_atexit.$(TEST_EXT)
-MALLOC_SUPPRESS_WARNINGS = test_malloc_whitebox.$(TEST_EXT) test_malloc_pure_c.$(TEST_EXT)
-
-$(MALLOC_SUPPRESS_WARNINGS): WARNING_KEY=
-$(MALLOC_SUPPRESS_WARNINGS): TEST_WARNING_KEY=
-$(MALLOC_M_CPLUS_TESTS): CPLUS_FLAGS:=$(M_CPLUS_FLAGS)
-$(MALLOC_M_CPLUS_TESTS): INCLUDES=$(M_INCLUDES)
-$(MALLOC_NO_LIB_TESTS): LINK_MALLOC.LIB=
-$(MALLOC_NO_LIB_TESTS): LINK_FLAGS+=$(LIBDL)
-$(MALLOC_LINK_PROXY_TESTS): LINK_MALLOC.LIB=$(LINK_MALLOCPROXY.LIB)
-ifneq (,$(DYLIB_KEY))
-$(MALLOC_ADD_DLL_TESTS): %.$(TEST_EXT): %_dll.$(DLL)
-$(MALLOC_ADD_DLL_TESTS): TEST_LIBS+=$(@:.$(TEST_EXT)=_dll.$(LIBEXT))
-endif
-
-test_malloc_over%.$(TEST_EXT): CPLUS_FLAGS:=$(subst /MT,/MD,$(M_CPLUS_FLAGS))
-test_malloc_over%.$(TEST_EXT): INCLUDES=$(M_INCLUDES)
-test_malloc_overload_proxy.$(TEST_EXT): LINK_FLAGS+=$(LIBDL)
-
-test_malloc_atexit_dll.$(DLL): CPLUS_FLAGS:=$(subst /MT,/MD,$(M_CPLUS_FLAGS))
-test_malloc_atexit.$(TEST_EXT): CPLUS_FLAGS:=$(subst /MT,/MD,$(M_CPLUS_FLAGS))
-test_malloc_atexit.$(TEST_EXT): LINK_FLAGS+=$(LIBDL)
-# on Ubuntu 11.10 linker called with --as-needed, so dependency 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): MALLOCPROXY.LIB := -Wl,--no-as-needed $(MALLOCPROXY.LIB)
-endif
-# The test isn't added to MALLOC_LINK_PROXY_TESTS, because we need both
-# tbbmalloc and proxy libs. For platforms other than Android it's enough
-# to modify LINK_MALLOC.LIB for TEST_EXT target only. But under Android build
-# of DLL and TEST_EXT can be requested independently, so there is no chance
-# to set LINK_MALLOC.LIB in TEST_EXT build rule, and affect DLL build.
-test_malloc_atexit.$(TEST_EXT): LINK_MALLOC.LIB := $(LINK_MALLOC.LIB) $(LINK_MALLOCPROXY.LIB)
-test_malloc_atexit_dll.$(DLL): LINK_MALLOC.LIB := $(LINK_MALLOC.LIB) $(LINK_MALLOCPROXY.LIB)
-
-test_malloc_whitebox.$(TEST_EXT): $(MALLOC_ASM.OBJ) version_string.ver
-test_malloc_whitebox.$(TEST_EXT): INCLUDES+=$(INCLUDE_KEY).
-test_malloc_whitebox.$(TEST_EXT): LINK_FILES+=$(MALLOC_ASM.OBJ)
-
-# Some _dll targets need to restore variables since they are changed by parent
-# target-specific rule of its .exe targets
-test_malloc_lib_unload_dll.$(DLL): CPLUS_FLAGS=$(ORIG_CPLUS_FLAGS) $(if $(no_exceptions),$(DEFINE_KEY)__TBB_TEST_NO_EXCEPTIONS=1)
-test_malloc_lib_unload_dll.$(DLL): INCLUDES=$(ORIG_INCLUDES) $(INCLUDE_TEST_HEADERS)
-
-test_malloc_used_by_lib_dll.$(DLL): CPLUS_FLAGS:=$(subst /MT,/LD,$(M_CPLUS_FLAGS))
-test_malloc_used_by_lib_dll.$(DLL): LINK_FILES+=$(ORIG_LINK_MALLOC.LIB)
-test_malloc_used_by_lib_dll.$(DLL): LIBDL=
-
-# The test needs both tbb and tbbmalloc.
-# For static build LINK_TBB.LIB is resolved in tbb.a static lib name (Linux), which cannot be found (dynamic tbb is used only).
-# In order to link properly, have to define LINK_TBB.LIB ourselves except for Windows where linkage with *.lib file expected.
-ifdef extra_inc
-ifneq ($(tbb_os),windows)
-DYNAMIC_TBB_LIB=$(LIBPREF)tbb$(CPF_SUFFIX)$(DEBUG_SUFFIX).$(DLL)
-endif
-endif
-test_malloc_shutdown_hang.$(TEST_EXT): LINK_FILES += $(if $(DYNAMIC_TBB_LIB), $(DYNAMIC_TBB_LIB), $(LINK_TBB.LIB))
-
-# -----------------------------------------------------
-
-# ---- The list of TBBMalloc test running commands ----
-# run_cmd is usually empty
-malloc_test: $(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) -l $(MALLOCPROXY.DLL) ./test_malloc_overload.$(TEST_EXT) $(args)
- $(run_cmd) $(TEST_LAUNCHER) ./test_malloc_overload_proxy.$(TEST_EXT) $(args)
- $(run_cmd) ./test_malloc_overload_disable.$(TEST_EXT) $(args)
- $(run_cmd) $(TEST_LAUNCHER) ./test_malloc_new_handler.$(TEST_EXT) $(args)
-endif
- $(run_cmd) $(TEST_LAUNCHER) ./test_malloc_lib_unload.$(TEST_EXT) $(args)
- $(run_cmd) $(TEST_LAUNCHER) ./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)
- $(run_cmd) ./test_malloc_shutdown_hang.$(TEST_EXT)
-# -----------------------------------------------------
-
-#------------------------------------------------------
-# End of rules for making the TBBMalloc unit tests
-#------------------------------------------------------
-
-# Include automatically generated dependencies
--include *.d
diff --git a/build/Makefile.test b/build/Makefile.test
deleted file mode 100644
index 9ef94ef1d7..0000000000
--- a/build/Makefile.test
+++ /dev/null
@@ -1,311 +0,0 @@
-# Copyright (c) 2005-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the 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)
-TESTFILE=test
-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) \
- $(if $(no_exceptions),$(DEFINE_KEY)__TBB_TEST_NO_EXCEPTIONS=1) \
- $(if $(LINK_TBB.LIB),$(DEFINE_KEY)TEST_USES_TBB=1)
-
-TEST_PREREQUISITE+=$(TBB.LIB)
-LINK_FILES+=$(LINK_TBB.LIB)
-
-TEST_SUFFIXES=secondary compiler_builtins pic
-include $(tbb_root)/build/common_rules.inc
-
-# Rules for the tests, which use TBB in a dynamically loadable library
-test_model_plugin.$(TEST_EXT): LINK_TBB.LIB =
-test_model_plugin.$(TEST_EXT): CPLUS_FLAGS := $(CPLUS_FLAGS:$(USE_PROXY_FLAG)=)
-test_model_plugin.$(TEST_EXT): LIBS += $(LIBDL)
-ifneq (,$(DYLIB_KEY))
-test_model_plugin.$(TEST_EXT): test_model_plugin_dll.$(DLL)
-endif
-
-# 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) \
- test_global_control_whitebox.$(TEST_EXT) \
- test_concurrent_queue_whitebox.$(TEST_EXT)
-
-# Necessary to locate version_string.ver referenced from directly included tbb_misc.cpp
-INCLUDES += $(INCLUDE_KEY). $(INCLUDE_TEST_HEADERS)
-
-$(SCHEDULER_DIRECTLY_INCLUDED): CPLUS_FLAGS += $(DSE_KEY) $(DEFINE_KEY)__TBB_LEGACY_MODE
-$(SCHEDULER_DIRECTLY_INCLUDED): WARNING_KEY += $(WARNING_SUPPRESS)
-$(SCHEDULER_DIRECTLY_INCLUDED): LIBS += $(LIBDL)
-#tbb.lib must not be linked to scheduler white box tests in order to not violate ODR
-$(SCHEDULER_DIRECTLY_INCLUDED): LINK_TBB.LIB =
-$(SCHEDULER_DIRECTLY_INCLUDED): LINK_FILES += $(SCHEDULER_DEPENDENCIES)
-$(SCHEDULER_DIRECTLY_INCLUDED): $(SCHEDULER_DEPENDENCIES)
-
-# 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_set.$(TEST_EXT)
-
-%_secondary.$(OBJ): CPLUS_FLAGS+=$(DEFINE_KEY)__TBB_TEST_SECONDARY=1
-
-# Detecting "multiple definition" linker error using the test that covers the whole library
-$(TWICE_LINKED_TESTS): %.$(TEST_EXT): %.$(OBJ) %_secondary.$(OBJ)
-$(TWICE_LINKED_TESTS): LINK_FILES+=$(@:.$(TEST_EXT)=_secondary.$(OBJ))
-
-# Checks that TBB works correctly in position independent code
-%_pic.$(OBJ): CPLUS_FLAGS+=$(PIC_KEY)
-%_pic.$(OBJ): CPLUS_FLAGS+=$(DEFINE_KEY)__TBB_TEST_PIC=1
-
-# Test of generic gcc port and icc intrinsics port
-%_compiler_builtins.$(TEST_EXT): LINK_TBB.LIB =
-%_compiler_builtins.$(OBJ): CPLUS_FLAGS+=$(DEFINE_KEY)__TBB_TEST_BUILTINS=1 $(DEFINE_KEY)TBB_USE_ASSERT=0
-
-# dynamic_link tests don't depend on the TBB library
-test_dynamic_link%.$(TEST_EXT): LINK_TBB.LIB =
-test_dynamic_link.$(TEST_EXT): LIBS += $(LIBDL)
-
-# Resolving issue with the number of sections that an object file can contain
-ifneq (,$(BIGOBJ_KEY))
-TEST_BIGOBJ = test_opencl_node.$(TEST_EXT) \
- test_atomic.$(TEST_EXT) \
- test_concurrent_hash_map.$(TEST_EXT) \
- test_concurrent_set.$(TEST_EXT) \
- test_concurrent_map.$(TEST_EXT) \
- test_concurrent_unordered_set.$(TEST_EXT) \
- test_concurrent_unordered_map.$(TEST_EXT) \
- test_join_node_key_matching.$(TEST_EXT) \
- test_join_node_msg_key_matching.$(TEST_EXT) \
- test_join_node.$(TEST_EXT)
-$(TEST_BIGOBJ): override CXXFLAGS += $(BIGOBJ_KEY)
-endif
-
-# TODO: remove repetition of .$(TEST_EXT) in the list below
-# The main list of TBB tests
-TEST_TBB_PLAIN.EXE = test_assembly.$(TEST_EXT) \
- test_global_control.$(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_blocked_rangeNd.$(TEST_EXT) \
- test_concurrent_queue.$(TEST_EXT) \
- test_concurrent_vector.$(TEST_EXT) \
- test_concurrent_unordered_set.$(TEST_EXT) \
- test_concurrent_unordered_map.$(TEST_EXT) \
- test_concurrent_hash_map.$(TEST_EXT) \
- test_concurrent_set.$(TEST_EXT) \
- test_concurrent_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_cache_aligned_allocator_STL.$(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_lambda.$(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_tuple.$(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_join_node_key_matching.$(TEST_EXT) \
- test_join_node_msg_key_matching.$(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_indexer_node.$(TEST_EXT) \
- test_multifunction_node.$(TEST_EXT) \
- test_split_node.$(TEST_EXT) \
- test_static_assert.$(TEST_EXT) \
- test_aggregator.$(TEST_EXT) \
- test_concurrent_lru_cache.$(TEST_EXT) \
- test_examples_common_utility.$(TEST_EXT) \
- test_dynamic_link.$(TEST_EXT) \
- test_parallel_for_vectorization.$(TEST_EXT) \
- test_tagged_msg.$(TEST_EXT) \
- test_partitioner_whitebox.$(TEST_EXT) \
- test_flow_graph_whitebox.$(TEST_EXT) \
- test_composite_node.$(TEST_EXT) \
- test_async_node.$(TEST_EXT) \
- test_async_msg.$(TEST_EXT) \
- test_resumable_tasks.$(TEST_EXT) \
- test_tbb_version.$(TEST_EXT) # insert new files right above
-
-# These tests depend on other technologies
-TEST_TBB_SPECIAL.EXE = test_openmp.$(TEST_EXT) \
- test_cilk_interop.$(TEST_EXT) \
- test_opencl_node.$(TEST_EXT)
-
-# skip mode_plugin for now
-skip_tests += test_model_plugin
-
-ifdef OPENMP_FLAG
-test_openmp.$(TEST_EXT): CPLUS_FLAGS += $(OPENMP_FLAG)
-
-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
-# 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)
- $(run_cmd) ./test_cilk_interop.$(TEST_EXT) $(args)
-else
-test_tbb_cilk:
- @echo "Intel(R) Cilk(TM) Plus is not available"
-endif
-
-test_opencl_node.$(TEST_EXT): LIBS += $(OPENCL.LIB)
-
-$(TEST_TBB_PLAIN.EXE) $(TEST_TBB_SPECIAL.EXE): WARNING_KEY += $(TEST_WARNING_KEY)
-
-# Run tests that are in SCHEDULER_DIRECTLY_INCLUDED and TEST_TBB_PLAIN.EXE but not in skip_tests (which is specified by user)
-TESTS_TO_RUN := $(filter-out $(addsuffix .$(TEST_EXT),$(skip_tests)),$(TEST_TBB_PLAIN.EXE) $(SCHEDULER_DIRECTLY_INCLUDED))
-
-# This definition intentionally consists of two blank lines
-define eol
-
-
-endef
-
-# First build the targets, then run them
-# Form a list of commands separated with end of line
-# Note that usually run_cmd is empty, and tests run directly
-
-test_tbb_plain: $(TEST_PREREQUISITE) $(TESTS_TO_RUN)
- $(foreach test, $(TESTS_TO_RUN), $(run_cmd) ./$(test) $(args) $(eol))
-
-
-# For deprecated files, we don't mind warnings etc., thus compilation rules are most relaxed
-CPLUS_FLAGS_DEPRECATED = $(DEFINE_KEY)__TBB_TEST_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_OLD.OBJ): CPLUS_FLAGS := $(CPLUS_FLAGS_DEPRECATED)
-
-TEST_TBB_OLD.EXE = $(subst .$(OBJ),.$(TEST_EXT),$(TEST_TBB_OLD.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_queue_v2.$(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
-
-time_%: time_%.$(TEST_EXT) $(TEST_PREREQUISITE)
- $(run_cmd) ./$< $(args)
-
-
-# for some reason, "perf_%.$(TEST_EXT): perf_dll.$(DLL)" does not work TODO: find out how to apply pattern here
-perf_sched.$(TEST_EXT): perf_dll.$(DLL)
-perf_%.$(TEST_EXT): TEST_LIBS = perf_dll.$(LIBEXT)
-perf_%: perf_%.$(TEST_EXT) $(TEST_PREREQUISITE)
- $(run_cmd) ./$< $(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 dependencies
--include *.d
diff --git a/build/OpenBSD.clang.inc b/build/OpenBSD.clang.inc
deleted file mode 100644
index 0acc5eb2b2..0000000000
--- a/build/OpenBSD.clang.inc
+++ /dev/null
@@ -1,15 +0,0 @@
-# Copyright (c) 2005-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-include $(tbb_root)/build/BSD.clang.inc
diff --git a/build/OpenBSD.inc b/build/OpenBSD.inc
deleted file mode 100644
index 8b85bf0284..0000000000
--- a/build/OpenBSD.inc
+++ /dev/null
@@ -1,15 +0,0 @@
-# Copyright (c) 2005-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-include $(tbb_root)/build/BSD.inc
diff --git a/build/SunOS.gcc.inc b/build/SunOS.gcc.inc
deleted file mode 100644
index 2af7a68267..0000000000
--- a/build/SunOS.gcc.inc
+++ /dev/null
@@ -1,88 +0,0 @@
-# Copyright (c) 2005-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the 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
-LIBDL = -ldl
-
-CPLUS = g++
-CONLY = gcc
-LIB_LINK_FLAGS = -shared
-LIBS = -lpthread -lrt -ldl
-C_FLAGS = $(CPLUS_FLAGS) -x c
-
-ifeq ($(cfg), release)
- CPLUS_FLAGS = -g -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
-
-#------------------------------------------------------------------------------
-# End of setting tbbmalloc data.
-#------------------------------------------------------------------------------
diff --git a/build/SunOS.inc b/build/SunOS.inc
deleted file mode 100644
index 30a2e68464..0000000000
--- a/build/SunOS.inc
+++ /dev/null
@@ -1,79 +0,0 @@
-# Copyright (c) 2005-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the 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 -dumpfullversion -dumpversion)
- 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 $(VERSION_FLAGS) >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)
-
-TEST_LAUNCHER=sh $(tbb_root)/build/test_launcher.sh $(largs)
diff --git a/build/SunOS.suncc.inc b/build/SunOS.suncc.inc
deleted file mode 100644
index b0dfa48487..0000000000
--- a/build/SunOS.suncc.inc
+++ /dev/null
@@ -1,88 +0,0 @@
-# Copyright (c) 2005-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the 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
-
-CPLUS = CC
-CONLY = cc
-
-OPENMP_FLAG = -xopenmp
-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 -g -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/build/android.clang.inc b/build/android.clang.inc
deleted file mode 100644
index 6edc48f7d1..0000000000
--- a/build/android.clang.inc
+++ /dev/null
@@ -1,126 +0,0 @@
-# Copyright (c) 2005-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the 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
-SDL_FLAGS = -fPIE -fPIC -fstack-protector -Wformat -Wformat-security
-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
-
-CPLUS = $(TARGET_CXX)
-CONLY = $(TARGET_CC)
-
-# -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) -z relro -z now
-
-# pie is necessary for test executables to work and might be removed if newer NDK will add it implicitly
-PIE_FLAG = -pie
-ifeq ($(APP_PIE), false)
- PIE_FLAG=
-endif
-
-LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
-C_FLAGS = $(CPLUS_FLAGS)
-
-ifeq ($(cfg), release)
- SDL_FLAGS += -D_FORTIFY_SOURCE=2
- 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
-
-ifeq (0, $(dynamic_load))
- CPLUS_FLAGS += $(DEFINE_KEY)__TBB_DYNAMIC_LOAD_ENABLED=0
-endif
-
-# Paths to the NDK prebuilt tools and libraries
-ifeq (,$(findstring $(ndk_version), $(foreach v, 7 8 9 10 11 12 13 14 15,r$(v) r$(v)b r$(v)c r$(v)d r$(v)e)))
- # Since Android* NDK r16 another sysroot and isystem paths have to be specified
- CPLUS_FLAGS += --sysroot=$(NDK_ROOT)/sysroot -isystem $(NDK_ROOT)/sysroot/usr/include/$(TRIPLE)
- # Android* version flag required since r16
- CPLUS_FLAGS += -D__ANDROID_API__=$(API_LEVEL)
-else
- CPLUS_FLAGS += --sysroot=$(SYSROOT)
-endif
-
-# Library sysroot flag
-LIB_LINK_FLAGS += --sysroot=$(SYSROOT)
-# Flag for test executables
-LINK_FLAGS += --sysroot=$(SYSROOT)
-
-LIBS = -L$(CPLUS_LIB_PATH) -lc++_shared
-ifeq (,$(findstring $(ndk_version),$(foreach v, 7 8 9 10 11,r$(v) r$(v)b r$(v)c r$(v)d r$(v)e)))
- LIBS += -lc++abi
- ifeq (arm,$(arch))
- LIBS += -lunwind
- endif
-endif
-
-ifeq (arm,$(arch))
- CPLUS_FLAGS += $(DEFINE_KEY)__TBB_64BIT_ATOMICS=0
-endif
-
-CPLUS_FLAGS += $(TARGET_CFLAGS)
-LIB_LINK_FLAGS += $(TARGET_CFLAGS) $(TARGET_LDFLAGS) -L$(CPLUS_LIB_PATH)
-
-#------------------------------------------------------------------------------
-# 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
-
-#------------------------------------------------------------------------------
-# End of setting tbbmalloc data.
-#------------------------------------------------------------------------------
diff --git a/build/android.gcc.inc b/build/android.gcc.inc
deleted file mode 100644
index 980a8cac80..0000000000
--- a/build/android.gcc.inc
+++ /dev/null
@@ -1,113 +0,0 @@
-# Copyright (c) 2005-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the 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
-
-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)
-
-# pie is necessary for test executables to work and might be removed if newer NDK will add it implicitly
-PIE_FLAG = -pie
-ifeq ($(APP_PIE), false)
- PIE_FLAG=
-endif
-
-LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
-C_FLAGS = $(CPLUS_FLAGS)
-
-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
-
-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
-
-ifeq (ia32,$(arch))
- # TODO: Determine best setting of -march and add to CPLUS_FLAGS
- CPLUS_FLAGS += -m32
- LIB_LINK_FLAGS += -m32
-else ifeq (intel64,$(arch))
- CPLUS_FLAGS += -m64
- LIB_LINK_FLAGS += -m64
-else ifeq (arm,$(arch))
- CPLUS_FLAGS += -march=armv7-a $(DEFINE_KEY)TBB_USE_GCC_BUILTINS=1 $(DEFINE_KEY)__TBB_64BIT_ATOMICS=0
-else ifeq (arm64,$(arch))
- CPLUS_FLAGS += -march=armv8-a
-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
-
-#------------------------------------------------------------------------------
-# End of setting tbbmalloc data.
-#------------------------------------------------------------------------------
diff --git a/build/android.icc.inc b/build/android.icc.inc
deleted file mode 100644
index 6ba64d19be..0000000000
--- a/build/android.icc.inc
+++ /dev/null
@@ -1,116 +0,0 @@
-# Copyright (c) 2005-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the 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 =
-TEST_WARNING_KEY = -Wshadow -Woverloaded-virtual -Wextra
-
-WARNING_SUPPRESS = -Wno-parentheses -Wno-non-virtual-dtor
-DYLIB_KEY = -shared
-EXPORT_KEY = -Wl,--version-script,
-LIBDL = -ldl
-
-CPLUS = icpc
-CONLY = icc
-
-# -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)
-
-# pie is necessary for test executables to work and might be removed if newer NDK will add it implicitly
-PIE_FLAG = -pie
-ifeq ($(APP_PIE), false)
- PIE_FLAG=
-endif
-
-LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
-C_FLAGS = $(CPLUS_FLAGS)
-
-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
-
-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)
-# the -static-intel flag is to remove the need to copy Intel-specific libs to the device.
-LIBS = -L$(CPLUS_LIB_PATH) -lgnustl_shared -static-intel
-
-ifeq (ia32,$(arch))
- # TODO: Determine best setting of -march and add to CPLUS_FLAGS
- CPLUS_FLAGS += -m32 -march=pentium4 -falign-stack=maintain-16-byte
- LIB_LINK_FLAGS += -m32
-else
- ifeq (intel64,$(arch))
- CPLUS_FLAGS += -m64
- LIB_LINK_FLAGS += -m64
- endif
-endif
-
-ifeq (arm,$(findstring arm,$(arch)))
- $(error "Unsupported architecture $(arch) for icc compiler")
-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
-
-#------------------------------------------------------------------------------
-# End of setting tbbmalloc data.
-#------------------------------------------------------------------------------
diff --git a/build/android.inc b/build/android.inc
deleted file mode 100644
index 3832ee5385..0000000000
--- a/build/android.inc
+++ /dev/null
@@ -1,59 +0,0 @@
-# Copyright (c) 2005-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the 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
-
-ifndef BUILDING_PHASE
- ifneq ("command line","$(origin arch)")
- ifeq (icc,$(compiler))
- export COMPILER_VERSION := ICC: $(shell icc -V &1 | grep 'Version')
- ifneq (,$(findstring running on IA-32, $(COMPILER_VERSION)))
- export arch:=ia32
- else ifneq (,$(findstring running on Intel(R) 64, $(COMPILER_VERSION)))
- export arch:=intel64
- 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
- endif
- endif
- endif
-endif
-
-ifeq ("$(arch)","")
- $(error "No target architecture specified and \'ANDROID_SERIAL\' environment variable specifying target device not set")
-endif
-
-# Android platform only supported from TBB 4.1 forward
-NO_LEGACY_TESTS = 1
-
-
diff --git a/build/android.linux.inc b/build/android.linux.inc
deleted file mode 100644
index a7d2b183a2..0000000000
--- a/build/android.linux.inc
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright (c) 2005-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the 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
-
-ifdef ndk_version
- $(warning "NDK version $(ndk_version)")
-else
- $(warning "NDK version not set in environment, using \'unknown\' instead.")
- ndk_version:=unknown
-endif
-
-export runtime:=$(target)_NDK$(ndk_version)_version_$(target_os_version)
-
-AR = $(tbb_tool_prefix)ar
-MAKE_VERSIONS=sh $(tbb_root)/build/version_info_android.sh $(VERSION_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)
-LINK_MALLOCPROXY.LIB = $(MALLOCPROXY.LIB)
-
-TEST_LAUNCHER=
-run_cmd ?= -sh $(tbb_root)/build/android.linux.launcher.sh $(largs)
diff --git a/build/android.linux.launcher.sh b/build/android.linux.launcher.sh
deleted file mode 100644
index 2643d3e0a5..0000000000
--- a/build/android.linux.launcher.sh
+++ /dev/null
@@ -1,144 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2005-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Usage:
-# android.linux.launcher.sh [-v] [-q] [-s] [-r ] [-u] [-l ]
-# where: -v enables verbose output
-# where: -q enables quiet mode
-# where: -s runs the test in stress mode (until non-zero exit code or ctrl-c pressed)
-# where: -r specifies number of times to repeat execution
-# where: -u is ignored on Android
-# where: -l specifies the library name to be assigned to LD_PRELOAD
-#
-# 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 #
-} #
-while getopts "qvsr:ul:" flag #
-do case $flag in #
- s ) # Stress testing mode
- echo Doing stress testing. Press Ctrl-C to terminate
- run_env='stressed() { while $*; do :; done; }; ' #
- run_prefix="stressed $run_prefix" ;; #
- r ) # Repeats test n times
- run_env="repeated() { for i in $(seq -s ' ' 1 $OPTARG) ; do echo \$i of $OPTARG:; \$*; done; }; " #
- run_prefix="repeated $run_prefix" ;; #
- l ) # Additional library
- ldpreload="$OPTARG " ;; #
- u ) # Stack limit
- ;; #
- q ) # Quiet mode, removes 'done' but prepends any other output by test name
- OUTPUT='2>&1 | sed -e "s/done//;/^[[:space:]]*$/d;s!^!$exename: !"' ;; #
- v ) # Verbose mode
- SUPPRESS='' #
- verbose=1 ;; #
-esac done #
-shift `expr $OPTIND - 1` #
-[ -z "$OUTPUT" ] && OUTPUT='| sed -e "s/\\r$//"' #
-[ $verbose ] || SUPPRESS='>/dev/null' #
-# 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_STL_ANDROID}" ]; then #
- fnamelist="$fnamelist ${LIB_STL_ANDROID}" #
-else #
- fnamelist="$fnamelist libc++_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="$(ls libtbb* 2> /dev/null)" #
-[ -z "$files" ] || fnamelist="$fnamelist $files" #
-# Add any libraries built for specific tests.
-exeroot=${exename%\.*} #
-files="$(ls ${exeroot}*.so ${exeroot}*.so.* 2> /dev/null)" #
-[ -z "$files" ] || fnamelist="$fnamelist $files" #
-# 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
- [ $verbose ] && echo -n "Pushing $fullname: " #
- eval "adb push $fullname ${targetdir}/$(basename $fullname) $SUPPRESS 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 { #
- eval "adb shell 'mkdir $directory' $SUPPRESS 2>&1" #
- }; fi #
- # Transfer the input file to corresponding directory on target device
- [ $verbose ] && echo -n "Pushing $fullname: " #
- eval "adb push $fullname ${targetdir}/$fullname $SUPPRESS 2>&1" #
- }; fi #
-}; done #
-# Set LD_PRELOAD if necessary
-[ -z "$ldpreload" ] || run_prefix="LD_PRELOAD='$ldpreload' $run_prefix" #
-[ $verbose ] && echo Running $run_prefix ./$exename $* #
-run_env="$run_env cd $targetdir; export LD_LIBRARY_PATH=." #
-[ -z "$VIRTUAL_MACHINE" ] || run_env="$run_env; export VIRTUAL_MACHINE=$VIRTUAL_MACHINE" #
-# The return_code file is the best way found to return the status of the test execution when using adb shell.
-eval 'adb shell "$run_env; $run_prefix ./$exename $* || echo -n \$? >error_code"' "${OUTPUT}" #
-# Capture the return code string and remove the trailing \r from the return_code file contents
-err=`adb shell "cat $targetdir/error_code 2>/dev/null"` #
-[ -z $err ] || echo $exename: exited with error $err #
-do_cleanup #
-# Return the exit code of the test.
-exit $err #
diff --git a/build/android.macos.inc b/build/android.macos.inc
deleted file mode 100644
index a48ee32b7f..0000000000
--- a/build/android.macos.inc
+++ /dev/null
@@ -1,72 +0,0 @@
-# Copyright (c) 2005-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the 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
-
-ifdef ndk_version
- $(warning "NDK version $(ndk_version)")
-else
- $(warning "NDK version not set in environment, using \'unknown\' instead.")
- ndk_version:=unknown
-endif
-
-export runtime:=$(target)_NDK$(ndk_version)_version_$(target_os_version)
-
-AR = $(tbb_tool_prefix)ar
-MAKE_VERSIONS=sh $(tbb_root)/build/version_info_android.sh $(VERSION_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)
-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/build/android.windows.inc b/build/android.windows.inc
deleted file mode 100644
index a56f9a98f9..0000000000
--- a/build/android.windows.inc
+++ /dev/null
@@ -1,74 +0,0 @@
-# Copyright (c) 2005-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the 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
-
-ifdef ndk_version
- $(warning "NDK version $(ndk_version)")
-else
- $(warning "NDK version not set in environment, using \'unknown\' instead.")
- ndk_version:=unknown
-endif
-
-export runtime:=$(target)_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 \,/,"$(VERSION_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)
-export UNIXMODE = 1
-# Clang for Android* uses the INCLUDE variable (instead of CPATH)
-export USE_INCLUDE_ENV = 1
diff --git a/build/big_iron.inc b/build/big_iron.inc
deleted file mode 100644
index abe6accca4..0000000000
--- a/build/big_iron.inc
+++ /dev/null
@@ -1,72 +0,0 @@
-# Copyright (c) 2005-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the 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 usage of dynamic (shared) libraries is disabled
-# (via -D__TBB_DYNAMIC_LOAD_ENABLED=0 and LIBDL emptied) primarily for performance.
-
-# OS specific settings =>
- LIB_LINK_CMD = ar rcs
- LIB_LINK_FLAGS =
- LIB_LINK_LIBS =
- LIB_OUTPUT_KEY =
- DYLIB_KEY =
- ifeq ($(tbb_os),linux)
- ifeq ($(compiler),clang)
- LIBS = -pthread -lrt
- endif
- ifeq ($(compiler),gcc)
- LIBS = -pthread -lrt
- endif
- ifeq ($(compiler),xl)
- LIBS = -lpthread -lrt
- endif
- LINK_FLAGS =
- endif
- override CXXFLAGS += -D__TBB_DYNAMIC_LOAD_ENABLED=0 -D__TBB_SOURCE_DIRECTLY_INCLUDED=1
- ITT_NOTIFY =
- DLL = a
- LIBEXT = a
- LIBPREF = lib
- LIBDL =
-# <= OS specific settings
-
-TBB.DLL = $(LIBPREF)tbb$(DEBUG_SUFFIX).$(LIBEXT)
-LINK_TBB.LIB = $(TBB.DLL)
-TBB.LST =
-TBB.DEF =
-TBB_NO_VERSION.DLL =
-
-MALLOC.DLL = $(LIBPREF)tbbmalloc$(DEBUG_SUFFIX).$(LIBEXT)
-LINK_MALLOC.LIB = $(MALLOC.DLL)
-MALLOC.DEF =
-MALLOC_NO_VERSION.DLL =
-MALLOCPROXY.DLL =
-MALLOCPROXY.DEF =
diff --git a/build/build.py b/build/build.py
deleted file mode 100644
index c0ab15190f..0000000000
--- a/build/build.py
+++ /dev/null
@@ -1,204 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (c) 2017-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Provides unified tool for preparing TBB for packaging
-
-from __future__ import print_function
-import os
-import re
-import sys
-import shutil
-import platform
-import argparse
-from glob import glob
-from collections import OrderedDict
-
-jp = os.path.join
-is_win = (platform.system() == 'Windows')
-is_lin = (platform.system() == 'Linux')
-is_mac = (platform.system() == 'Darwin')
-
-default_prefix = os.getenv('PREFIX', 'install_prefix')
-if is_win:
- default_prefix = jp(default_prefix, 'Library') # conda-specific by default on Windows
-
-parser = argparse.ArgumentParser()
-parser.add_argument('--tbbroot', default='.', help='Take Intel TBB from here')
-parser.add_argument('--prefix', default=default_prefix, help='Prefix')
-parser.add_argument('--prebuilt', default=[], action='append', help='Directories to find prebuilt files')
-parser.add_argument('--no-rebuild', default=False, action='store_true', help='do not rebuild')
-parser.add_argument('--install', default=False, action='store_true', help='install all')
-parser.add_argument('--install-libs', default=False, action='store_true', help='install libs')
-parser.add_argument('--install-devel', default=False, action='store_true', help='install devel')
-parser.add_argument('--install-docs', default=False, action='store_true', help='install docs')
-parser.add_argument('--install-python', default=False, action='store_true', help='install python module')
-parser.add_argument('--make-tool', default='make', help='Use different make command instead')
-parser.add_argument('--copy-tool', default=None, help='Use this command for copying ($ tool file dest-dir)')
-parser.add_argument('--build-args', default="", help='specify extra build args')
-parser.add_argument('--build-prefix', default='local', help='build dir prefix')
-parser.add_argument('--cmake-dir', help='directory to install CMake configuration files. Default: /lib/cmake/tbb')
-if is_win:
- parser.add_argument('--msbuild', default=False, action='store_true', help='Use msbuild')
- parser.add_argument('--vs', default="2012", help='select VS version for build')
- parser.add_argument('--vs-platform', default="x64", help='select VS platform for build')
-parser.add_argument('ignore', nargs='?', help="workaround conda-build issue #2512")
-
-args = parser.parse_args()
-
-if args.install:
- args.install_libs = True
- args.install_devel = True
- args.install_docs = True
- args.install_python= True
-
-def custom_cp(src, dst):
- assert os.system(' '.join([args.copy_tool, src, dst])) == 0
-
-if args.copy_tool:
- install_cp = custom_cp # e.g. to use install -p -D -m 755 on Linux
-else:
- install_cp = shutil.copy
-
-bin_dir = jp(args.prefix, "bin")
-lib_dir = jp(args.prefix, "lib")
-inc_dir = jp(args.prefix, 'include')
-doc_dir = jp(args.prefix, 'share', 'doc', 'tbb')
-cmake_dir = jp(args.prefix, "lib", "cmake", "tbb") if args.cmake_dir is None else args.cmake_dir
-
-if is_win:
- os.environ["OS"] = "Windows_NT" # make sure TBB will interpret it correctly
- libext = '.dll'
- libpref = ''
- dll_dir = bin_dir
-else:
- libext = '.dylib' if is_mac else '.so.2'
- libpref = 'lib'
- dll_dir = lib_dir
-
-tbb_names = ["tbb", "tbbmalloc", "tbbmalloc_proxy"]
-
-##############################################################
-
-def system(arg):
- print('$ ', arg)
- return os.system(arg)
-
-def run_make(arg):
- if system('%s -j %s'% (args.make_tool, arg)) != 0:
- print("\nBummer. Running serial build in order to recover the log and have a chance to fix the build")
- assert system('%s %s'% (args.make_tool, arg)) == 0
-
-os.chdir(args.tbbroot)
-if args.prebuilt:
- release_dirs = sum([glob(d) for d in args.prebuilt], [])
- print("Using pre-built files from ", release_dirs)
-else:
- if is_win and args.msbuild:
- preview_release_dir = release_dir = jp(args.tbbroot, 'build', 'vs'+args.vs, args.vs_platform, 'Release')
- if not args.no_rebuild or not os.path.isdir(release_dir):
- assert os.system('msbuild /m /p:Platform=%s /p:Configuration=Release %s build/vs%s/makefile.sln'% \
- (args.vs_platform, args.build_args, args.vs)) == 0
- preview_debug_dir = debug_dir = jp(args.tbbroot, 'build', 'vs'+args.vs, args.vs_platform, 'Debug')
- if not args.no_rebuild or not os.path.isdir(debug_dir):
- assert os.system('msbuild /m /p:Platform=%s /p:Configuration=Debug %s build/vs%s/makefile.sln'% \
- (args.vs_platform, args.build_args, args.vs)) == 0
- else:
- release_dir = jp(args.tbbroot, 'build', args.build_prefix+'_release')
- debug_dir = jp(args.tbbroot, 'build', args.build_prefix+'_debug')
- if not args.no_rebuild or not (os.path.isdir(release_dir) and os.path.isdir(debug_dir)):
- run_make('tbb_build_prefix=%s %s'% (args.build_prefix, args.build_args))
- preview_release_dir = jp(args.tbbroot, 'build', args.build_prefix+'_preview_release')
- preview_debug_dir = jp(args.tbbroot, 'build', args.build_prefix+'_preview_debug')
- if not args.no_rebuild or not (os.path.isdir(preview_release_dir) and os.path.isdir(preview_debug_dir)):
- run_make('tbb_build_prefix=%s_preview %s tbb_cpf=1 tbb'% (args.build_prefix, args.build_args))
- release_dirs = [release_dir, debug_dir, preview_release_dir, preview_debug_dir]
-
-filemap = OrderedDict()
-def append_files(names, dst, paths=release_dirs):
- global filemap
- files = sum([glob(jp(d, f)) for d in paths for f in names], [])
- filemap.update(dict(zip(files, [dst]*len(files))))
-
-
-if args.install_libs:
- append_files([libpref+f+libext for f in tbb_names], dll_dir)
-
-if args.install_devel:
- dll_files = [libpref+f+'_debug'+libext for f in tbb_names] # adding debug libraries
- if not is_win or not args.msbuild:
- dll_files += [libpref+"tbb_preview"+libext, libpref+"tbb_preview_debug"+libext]
- if is_win:
- dll_files += ['tbb*.pdb'] # copying debug info
- if is_lin:
- dll_files += ['libtbb*.so'] # copying linker scripts
- # symlinks .so -> .so.2 should not be created instead
- # since linking with -ltbb when using links can result in
- # incorrect dependence upon unversioned .so files
- append_files(dll_files, dll_dir)
- if is_win:
- append_files(['*.lib', '*.def'], lib_dir) # copying linker libs and defs
- for rootdir, dirnames, filenames in os.walk(jp(args.tbbroot,'include')):
- files = [f for f in filenames if not '.html' in f]
- append_files(files, jp(inc_dir, rootdir.split('include')[1][1:]), paths=(rootdir,))
-
- # Preparing CMake configuration files
- cmake_build_dir = jp(args.tbbroot, 'build', args.build_prefix+'_release', 'cmake_configs')
- assert system('cmake -DINSTALL_DIR=%s -DSYSTEM_NAME=%s -DTBB_VERSION_FILE=%s -DINC_REL_PATH=%s -DLIB_REL_PATH=%s -DBIN_REL_PATH=%s -P %s' % \
- (cmake_build_dir,
- platform.system(),
- jp(args.tbbroot, 'include', 'tbb', 'tbb_stddef.h'),
- os.path.relpath(inc_dir, cmake_dir),
- os.path.relpath(lib_dir, cmake_dir),
- os.path.relpath(bin_dir, cmake_dir),
- jp(args.tbbroot, 'cmake', 'tbb_config_installer.cmake'))) == 0
- append_files(['TBBConfig.cmake', 'TBBConfigVersion.cmake'], cmake_dir, paths=[cmake_build_dir])
-
-if args.install_python: # RML part
- irml_dir = jp(args.tbbroot, 'build', args.build_prefix+'_release')
- run_make('-C src tbb_build_prefix=%s %s python_rml'% (args.build_prefix, args.build_args))
- if is_lin:
- append_files(['libirml.so.1'], dll_dir, paths=[irml_dir])
-
-if args.install_docs:
- files = [
- 'CHANGES',
- 'LICENSE',
- 'README',
- 'README.md',
- 'Release_Notes.txt',
- ]
- append_files(files, doc_dir, paths=release_dirs+[jp(args.tbbroot, d) for d in ('.', 'doc')])
-
-for f in filemap.keys():
- assert os.path.exists(f)
- assert os.path.isfile(f)
-
-if filemap:
- print("Copying to prefix =", args.prefix)
-for f, dest in filemap.items():
- if not os.path.isdir(dest):
- os.makedirs(dest)
- print("+ %s to $prefix%s"%(f,dest.replace(args.prefix, '')))
- install_cp(f, dest)
-
-if args.install_python: # Python part
- paths = [os.path.abspath(d) for d in [args.prefix, inc_dir, irml_dir, lib_dir]+release_dirs]
- os.environ["TBBROOT"] = paths[0]
- # all the paths must be relative to python/ directory or be absolute
- assert system('python python/setup.py build -b%s build_ext -I%s -L%s install -f'% \
- (paths[2], paths[1], ':'.join(paths[2:]))) == 0
-
-print("done")
diff --git a/build/codecov.txt b/build/codecov.txt
deleted file mode 100644
index e22f8059a2..0000000000
--- a/build/codecov.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-src/tbb
-src/tbbmalloc
-include/tbb
-src/rml/server
-src/rml/client
-src/rml/include
-source/malloc
diff --git a/build/common.inc b/build/common.inc
deleted file mode 100644
index 815fa6824a..0000000000
--- a/build/common.inc
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright (c) 2005-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the 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 (1,$(tbb_cpf))
- export CPF_SUFFIX ?=_preview
-endif
-
-ifeq (0,$(exceptions))
-# Inverse the value, for simplicity of use
- export no_exceptions=1
-endif
-
-ifdef cpp0x
- $(warning "Warning: deprecated cpp0x=$(cpp0x) is used, stdver must be used instead. Building in stdver=c++0x mode.")
- export stdver?=c++0x
- override cpp0x=
-endif
-
-# Define C & C++ compilers according to platform defaults or CXX & CC environment variables
-ifneq (,$(findstring environment, $(origin CXX)))
- CPLUS = $(CXX)
-endif
-ifneq (,$(findstring environment, $(origin CC)))
- CONLY = $(CC)
-endif
-
-ifneq (,$(stdver))
- ifeq (,$(findstring ++, $(stdver)))
- $(warning "Warning: unexpected stdver=$(stdver) is used.")
- endif
- CXX_STD_FLAGS=-std=$(stdver)
-endif
-
-# The requested option is added unconditionally.
-# If it is not supported, a compiler warning or error is expected.
-# Note that CXX_STD_FLAGS can be changed in ..inc.
-CXX_ONLY_FLAGS+=$(CXX_STD_FLAGS)
-
-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))
-# Setting default configuration to release
-cfg?=release
-
-compiler_name=$(notdir $(compiler))
-ifdef BUILDING_PHASE
- ifndef target
- target:=$(tbb_os)
- endif
- # process host/target compiler-dependent build configuration
- ifeq (,$(wildcard $(tbb_root)/build/$(target).$(compiler_name).inc))
- $(error "$(compiler_name)" is not supported on $(target). Add build/$(target).$(compiler_name).inc file with compiler-specific settings. )
- endif
- include $(tbb_root)/build/$(target).$(compiler_name).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
- export tbb_build_prefix?=$(tbb_os)_$(arch)_$(compiler_name)_$(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)) ),)
- full_tbb_root:=$(CURDIR)/$(tbb_root)
- ifeq ($(origin_build_dir),undefined)
- #relative path are needed here as a workaround to support whitespaces in path
- override tbb_root:=../..
- else
- override tbb_root:=$(full_tbb_root)
- endif
- export tbb_root
- endif
- endif # !BUILDING_PHASE
-
-.DELETE_ON_ERROR: # Make will delete target if error occurred when building it.
-
-# MAKEOVERRIDES contains the command line variable definitions. Resetting it to
-# empty allows propagating all exported overridden variables to nested makes.
-# NOTEs:
-# 1. All variable set in command line are propagated to nested makes.
-# 2. All variables declared with the "export" keyword are propagated to
-# nested makes.
-# 3. "override" allows changing variables set in command line. But it doesn't
-# propagate new values to nested makes. For propagation, the "export" keyword
-# should be used.
-# 4. gmake v3.80 doesn't support exporting of target-specific variables using
-# the "export" keyword
-MAKEOVERRIDES =
diff --git a/build/common_rules.inc b/build/common_rules.inc
deleted file mode 100644
index d647ca427d..0000000000
--- a/build/common_rules.inc
+++ /dev/null
@@ -1,169 +0,0 @@
-# Copyright (c) 2005-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the 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
-
-ifneq (,$(findstring s,$(MAKEFLAGS)))
- override largs+=-q
-endif
-ifneq (,$(repeat))
- override largs+=-r $(repeat)
-endif
-ifneq (,$(largs)$(run_prefix))
- override run_cmd:=$(run_cmd) $(TEST_LAUNCHER)
- TEST_LAUNCHER=
- ifeq (,$(strip $(run_cmd)))
- $(warning Test launcher is not defined for the platform, ignoring launcher arguments)
- endif
-endif
-
-ifndef TEST_EXT
- TEST_EXT = exe
-endif
-
-INCLUDES += $(INCLUDE_KEY)$(tbb_root)/src $(INCLUDE_KEY)$(tbb_root)/src/rml/include $(INCLUDE_KEY)$(tbb_root)/include
-
-CPLUS_FLAGS += $(WARNING_KEY) $(CXXFLAGS)
-
-# Suppress warnings about usage of deprecated content
-CPLUS_FLAGS += $(DEFINE_KEY)TBB_SUPPRESS_DEPRECATED_MESSAGES=1
-
-ifeq (1,$(tbb_cpf))
-CPLUS_FLAGS += $(DEFINE_KEY)__TBB_CPF_BUILD=1
-endif
-ifeq (0,$(exceptions))
-CPLUS_FLAGS += $(DEFINE_KEY)TBB_USE_EXCEPTIONS=0
-endif
-LINK_FLAGS += $(LDFLAGS)
-LIB_LINK_FLAGS += $(LDFLAGS)
-
-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
-
-# some platforms do not provide separate C-only compiler
-CONLY ?= $(CPLUS)
-
-# The most generic rules
-#$(1) - is the target pattern
-define make-cxx-obj
-$1: %.cpp
- $$(CPLUS) $$(OUTPUTOBJ_KEY)$$@ $$(COMPILE_ONLY) $$(CPLUS_FLAGS) $$(CXX_ONLY_FLAGS) $$(CXX_WARN_SUPPRESS) $$(INCLUDES) $$<
-endef
-
-TEST_AFFIXES_OBJS=$(addsuffix .$(OBJ),$(addprefix %_,$(TEST_SUFFIXES)) $(addsuffix _%,$(TEST_PREFIXES)))
-
-# Make will not process the same recipe for each test pattern (since the dependency on the same %.cpp)
-# thus the separated recipes should be provided
-$(foreach t,%.$(OBJ) $(TEST_AFFIXES_OBJS),$(eval $(call make-cxx-obj,$(t))))
-
-.PRECIOUS: %.$(OBJ) %.$(TEST_EXT) %.res $(TEST_AFFIXES_OBJS)
-
-# Rules for generating a test DLL
-%_dll.$(OBJ): %.cpp
- $(CPLUS) $(COMPILE_ONLY) $(OUTPUTOBJ_KEY)$@ $(CPLUS_FLAGS) $(PIC_KEY) $(DEFINE_KEY)_USRDLL $(INCLUDES) $<
-
-#$(1) - is the binary name
-#$(2) - is the input obj files and libraries
-define make-test-binary
- $(CPLUS) $(OUTPUT_KEY)$(strip $1) $(CPLUS_FLAGS) $(2) $(LIBS) $(LINK_FLAGS)
-endef
-
-# LINK_FILES the list of options to link test specific files (libraries and object files)
-LINK_FILES+=$(TEST_LIBS)
-# Rule for generating executable test
-%.$(TEST_EXT): %.$(OBJ) $(TEST_LIBS) $(TEST_PREREQUISITE)
- $(call make-test-binary,$@,$< $(LINK_FILES) $(PIE_FLAG))
-
-# Rules for generating a test DLL
-%_dll.$(DLL): LINK_FLAGS += $(PIC_KEY) $(DYLIB_KEY)
-%_dll.$(DLL): TEST_LIBS := $(subst %_dll.$(DLL),,$(TEST_LIBS))
-%_dll.$(DLL): %_dll.$(OBJ)
- $(call make-test-binary,$@,$< $(LINK_FILES))
-.PRECIOUS: %_dll.$(OBJ) %_dll.$(DLL)
-
-%.$(OBJ): %.c
- $(CONLY) $(COMPILE_ONLY) $(OUTPUTOBJ_KEY)$@ $(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 ICL treats an argument after PREPROC_ONLY as a file to open,
-# so 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
-$(KNOWN_WARNINGS): %.$(OBJ): %.cpp
- $(CPLUS) $(COMPILE_ONLY) $(subst $(WARNING_KEY),,$(CPLUS_FLAGS)) $(CXX_ONLY_FLAGS) $(CXX_WARN_SUPPRESS) $(INCLUDES) $<
-
-tbb_misc.$(OBJ): version_string.ver
-tbb_misc.$(OBJ): INCLUDES+=$(INCLUDE_KEY).
-
-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)) $<
-
-# TODO: add $(LIB_LINK_LIBS) $(LIB_LINK_FLAGS) (in a separate line?) and remove useless $(INCLUDES)
-VERSION_FLAGS=$(CPLUS) $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(INCLUDES)
-
-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"
-# TODO: fix parallel build by writing to a temporary file and rename it when complete
-else
-# TODO: make version strings directly representative for all the libraries
-version_string.ver:
- $(MAKE_VERSIONS)
-endif
-
-test_% debug_%: test_%.$(TEST_EXT) $(TEST_PREREQUISITE)
- $(run_cmd) ./$< $(args)
-ifneq (,$(codecov))
- profmerge
- codecov $(if $(findstring -,$(codecov)),$(codecov),) -demang -comp $(tbb_root)/build/codecov.txt
-endif
-
diff --git a/build/detect.js b/build/detect.js
deleted file mode 100644
index ef8ccc1587..0000000000
--- a/build/detect.js
+++ /dev/null
@@ -1,203 +0,0 @@
-// Copyright (c) 2005-2020 Intel Corporation
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-function readAllFromFile(fname) {
- var fso = new ActiveXObject("Scripting.FileSystemObject");
- var file = null;
- try {
- file = fso.OpenTextFile(fname, 1, 0);
- return (file.readAll());
- } finally {
- // Close the file in the finally section to guarantee that it will be closed in any case
- // (if the exception is thrown or not).
- file.Close();
- }
-}
-
-function doWork() {
- var WshShell = WScript.CreateObject("WScript.Shell");
-
- var 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) {
- var compilerPath = WScript.Arguments(1);
- // The RegExp matches everything up to and including the last slash (it uses a greedy approach.)
- var compilerName = compilerPath.replace(/^.*[\/\\]/, "");
- if (compilerName.match(/gcc/i) != null) {
- if (WScript.Arguments(0) == "/arch") {
- // Get predefined macros
- tmpExec = WshShell.Run("cmd /C " + compilerPath + " -dM -E detect.c > detect.map", 0, true);
- var defs = readAllFromFile("detect.map");
- //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(compilerPath + " -dumpfullversion -dumpversion");
- var gccVersion = tmpExec.StdOut.ReadLine();
- if (WScript.Arguments(0) == "/runtime") {
- WScript.Echo("mingw" + gccVersion);
- }
- else if (WScript.Arguments(0) == "/minversion") {
- for (var i = 0; i < 3; i++) {
- v1 = parseInt(gccVersion.split('.')[i]);
- v2 = parseInt(WScript.Arguments(2).split('.')[i]);
-
- if (v1 > v2) {
- break;
- } else if (v1 < v2) {
- WScript.Echo("fail");
- return;
- }
- }
- WScript.Echo("ok");
- }
- }
- 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 ia32 = /[80|\s]x86/mgi;
- var arm = /ARM/mgi;
- if (clVersion.match(intel64)) {
- WScript.Echo("intel64");
- } else if (clVersion.match(ia32)) {
- WScript.Echo("ia32");
- } else if (clVersion.match(arm)) {
- WScript.Echo("armv7");
- } else {
- WScript.Echo("unknown");
- }
- return;
- }
-
- if (WScript.Arguments(0) == "/runtime") {
- //read map-file
- var mapContext = readAllFromFile("detect.map");
- //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 vc120 = /MSVCR120\.DLL/mgi;
- var vc140 = /VCRUNTIME140\.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 if (mapContext.match(vc120)) {
- WScript.Echo("vc12");
- } else if (mapContext.match(vc140)) {
- if (WshShell.ExpandEnvironmentStrings("%VisualStudioVersion%") == "15.0")
- WScript.Echo("vc14.1");
- else if (WshShell.ExpandEnvironmentStrings("%VisualStudioVersion%") == "16.0")
- WScript.Echo("vc14.2");
- else
- WScript.Echo("vc14");
- } else {
- WScript.Echo("unknown");
- }
- return;
- }
-
- if (WScript.Arguments(0) == "/minversion") {
- var compilerVersion;
- var compilerUpdate;
- if (WScript.Arguments(1) == "cl") {
- compilerVersion = clVersion.match(/Compiler Version ([0-9.]+)\s/mi)[1];
- // compilerVersion 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 defs = readAllFromFile("detect.map");
- // In #define __INTEL_COMPILER XXYY, XX is the major ICL version, YY is minor
- compilerVersion = defs.match(/__INTEL_COMPILER[ \t]*([0-9]+).*$/mi)[1] / 100;
- compilerUpdate = defs.match(/__INTEL_COMPILER_UPDATE[ \t]*([0-9]+).*$/mi)[1];
- // 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).
- }
- var requestedVersion = WScript.Arguments(2);
- var requestedUpdate = 0;
- if (WScript.Arguments.Count() > 3)
- requestedUpdate = WScript.Arguments(3);
- if (compilerVersion < requestedVersion) {
- WScript.Echo("fail");
- } else if (compilerVersion == requestedVersion && compilerUpdate < requestedUpdate) {
- WScript.Echo("fail");
- } else {
- WScript.Echo("ok");
- }
- 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/build/generate_tbbvars.bat b/build/generate_tbbvars.bat
deleted file mode 100644
index 121732804c..0000000000
--- a/build/generate_tbbvars.bat
+++ /dev/null
@@ -1,62 +0,0 @@
-@echo off
-REM
-REM Copyright (c) 2005-2020 Intel Corporation
-REM
-REM Licensed under the Apache License, Version 2.0 (the "License");
-REM you may not use this file except in compliance with the License.
-REM You may obtain a copy of the License at
-REM
-REM http://www.apache.org/licenses/LICENSE-2.0
-REM
-REM Unless required by applicable law or agreed to in writing, software
-REM distributed under the License is distributed on an "AS IS" BASIS,
-REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-REM See the License for the specific language governing permissions and
-REM limitations under the 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 not x%USE_INCLUDE_ENV%==x set _INCLUDE=INCLUDE
-
-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
-
-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
-
-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
-
-if not x%LIB_STL_ANDROID%==x (
-REM Workaround for copying Android* specific stl shared library to work folder
-copy /Y "%LIB_STL_ANDROID:/=\%" .
-)
-
-endlocal
-exit
diff --git a/build/generate_tbbvars.sh b/build/generate_tbbvars.sh
deleted file mode 100644
index 4106ed3f81..0000000000
--- a/build/generate_tbbvars.sh
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/bin/bash
-#
-# Copyright (c) 2005-2020 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the 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
-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, macOS*, 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, macOS, etc.,
- shell commands issued by GNU make should execute in a Bourne or BASH compatible shell.
- In the following examples, replace make with the correct GNU make command for
- your system (for example, gmake). GNU make version 3.80 and more recent are supported.
-
-
-
-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, macOS, 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, make.
-
-
-
-To build Intel TBB libraries for other than the default ABI (e.g., to build 32-bit libraries on Linux OS, macOS,
-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).
-
- Explicitly specify the architecture when invoking GNU make, e.g. make 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. Available in the open-source version only.
-For the commercial version, you can download Intel TBB Samples at the Intel® Software Product Samples and Tutorials website;
-
- make all will do all of the above. Available in the open-source version only.
-
-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 macOS, 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. Available in the open-source version only.
-
- 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.
- Available in the open-source version only.
-
- make python
-
- Build, install, and test Python* API for Intel TBB. See details here.
-
- 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 macOS).
- - 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 stdver={c++11, c++14, ...} [(above options or targets)]
-
- Build and run as above, but additionally specify the version of the C++ standard or dialect to be used by
- the compiler. The specified value of stdver will be used as a parameter to the appropriate
- compiler option (such as -std); the behavior in case of unsupported value is compiler-specific.
-
- make target_app={win8ui, uwp, uwd} [target_mode=store] [(above options or targets)]
-
- Build and run as above, but use API that is compliant with Universal Windows* applications. Use win8ui option, if you want to use Intel TBB in Windows* 8 Universal application, uwp in case of Windows* 10 Universal Windows application and uwd for the usage inside Universal Windows* driver.
- target_mode=store is used to produce binaries that are compliant with Windows Store* application container. In later case they won't work 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-2020 Intel Corporation. All Rights Reserved.
-
-Intel, the Intel logo and Itanium are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or other countries.
-
-* Other names and brands may be claimed as the property of others.
-
-