Disabled external gits
This commit is contained in:
		
							
								
								
									
										71
									
								
								cs440-acg/ext/tbb/build/AIX.gcc.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								cs440-acg/ext/tbb/build/AIX.gcc.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,71 @@
 | 
			
		||||
# 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.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
							
								
								
									
										62
									
								
								cs440-acg/ext/tbb/build/AIX.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								cs440-acg/ext/tbb/build/AIX.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,62 @@
 | 
			
		||||
# 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)
 | 
			
		||||
							
								
								
									
										106
									
								
								cs440-acg/ext/tbb/build/BSD.clang.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										106
									
								
								cs440-acg/ext/tbb/build/BSD.clang.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,106 @@
 | 
			
		||||
# 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.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
							
								
								
									
										70
									
								
								cs440-acg/ext/tbb/build/BSD.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								cs440-acg/ext/tbb/build/BSD.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,70 @@
 | 
			
		||||
# 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)
 | 
			
		||||
							
								
								
									
										17
									
								
								cs440-acg/ext/tbb/build/FreeBSD.clang.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								cs440-acg/ext/tbb/build/FreeBSD.clang.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
# 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
 | 
			
		||||
							
								
								
									
										89
									
								
								cs440-acg/ext/tbb/build/FreeBSD.gcc.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								cs440-acg/ext/tbb/build/FreeBSD.gcc.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,89 @@
 | 
			
		||||
# 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.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
							
								
								
									
										15
									
								
								cs440-acg/ext/tbb/build/FreeBSD.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								cs440-acg/ext/tbb/build/FreeBSD.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
# 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
 | 
			
		||||
							
								
								
									
										169
									
								
								cs440-acg/ext/tbb/build/Makefile.rml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										169
									
								
								cs440-acg/ext/tbb/build/Makefile.rml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,169 @@
 | 
			
		||||
# 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.
 | 
			
		||||
 | 
			
		||||
# TODO: investigate why version_string.ver is not complete when $(RML_SERVER.OBJ) is being compiled.
 | 
			
		||||
.NOTPARALLEL:
 | 
			
		||||
 | 
			
		||||
tbb_root ?= $(TBBROOT)
 | 
			
		||||
BUILDING_PHASE=1
 | 
			
		||||
TEST_RESOURCE = $(RML.RES)
 | 
			
		||||
include $(tbb_root)/build/common.inc
 | 
			
		||||
DEBUG_SUFFIX=$(findstring _debug,_$(cfg))
 | 
			
		||||
 | 
			
		||||
ifeq (android,$(target))
 | 
			
		||||
$(error "RML is not supported on Android")
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# default target
 | 
			
		||||
default_rml: rml rml_test
 | 
			
		||||
 | 
			
		||||
RML_ROOT ?= $(tbb_root)/src/rml
 | 
			
		||||
RML_SERVER_ROOT = $(RML_ROOT)/server
 | 
			
		||||
 | 
			
		||||
VPATH = $(tbb_root)/src/tbb $(tbb_root)/src/tbb/$(ASSEMBLY_SOURCE)
 | 
			
		||||
VPATH += $(RML_ROOT)/server $(RML_ROOT)/client $(RML_ROOT)/test $(tbb_root)/src/test
 | 
			
		||||
 | 
			
		||||
include $(tbb_root)/build/common_rules.inc
 | 
			
		||||
 | 
			
		||||
#--------------------------------------------------------------------------
 | 
			
		||||
# Define rules for making the RML server shared library and client objects.
 | 
			
		||||
#--------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
# Object files that make up RML server
 | 
			
		||||
RML_SERVER.OBJ = rml_server.$(OBJ)
 | 
			
		||||
 | 
			
		||||
# Object files that RML clients need
 | 
			
		||||
RML_TBB_CLIENT.OBJ ?= rml_tbb.$(OBJ) dynamic_link_rml.$(OBJ)
 | 
			
		||||
RML_OMP_CLIENT.OBJ ?= rml_omp.$(OBJ) omp_dynamic_link.$(OBJ)
 | 
			
		||||
 | 
			
		||||
RML.OBJ = $(RML_SERVER.OBJ) $(RML_TBB_CLIENT.OBJ) $(RML_OMP_CLIENT.OBJ)
 | 
			
		||||
ifeq (windows,$(tbb_os))
 | 
			
		||||
RML_ASM.OBJ = $(if $(findstring intel64,$(arch)),$(TBB_ASM.OBJ))
 | 
			
		||||
endif
 | 
			
		||||
ifeq (linux,$(tbb_os))
 | 
			
		||||
RML_ASM.OBJ = $(if $(findstring ia64,$(arch)),$(TBB_ASM.OBJ))
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
RML_TBB_DEP= cache_aligned_allocator_rml.$(OBJ) dynamic_link_rml.$(OBJ) concurrent_vector_rml.$(OBJ) semaphore_rml.$(OBJ) tbb_misc_rml.$(OBJ) tbb_misc_ex_rml.$(OBJ)
 | 
			
		||||
TBB_DEP_NON_RML_TEST?= cache_aligned_allocator_rml.$(OBJ) dynamic_link_rml.$(OBJ) $(RML_ASM.OBJ) tbb_misc_rml.$(OBJ) tbb_misc_ex_rml.$(OBJ)
 | 
			
		||||
ifeq ($(cfg),debug)
 | 
			
		||||
RML_TBB_DEP+= spin_mutex_rml.$(OBJ)
 | 
			
		||||
TBB_DEP_RML_TEST?= $(RML_ASM.OBJ) tbb_misc_rml.$(OBJ)
 | 
			
		||||
 | 
			
		||||
ifeq (windows icl,$(tbb_os) $(compiler_name))
 | 
			
		||||
# Some versions of ICC link to the wrong version of the vc runtime
 | 
			
		||||
# libcpmtd.lib should be used instead of libcpmt.lib
 | 
			
		||||
LIB_LINK_FLAGS += /nodefaultlib:libcpmt.lib
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
else
 | 
			
		||||
TBB_DEP_RML_TEST?= $(RML_ASM.OBJ)
 | 
			
		||||
endif
 | 
			
		||||
LIBS += $(LIBDL)
 | 
			
		||||
 | 
			
		||||
INCLUDES += $(INCLUDE_KEY)$(RML_ROOT)/include $(INCLUDE_KEY).
 | 
			
		||||
T_INCLUDES = $(INCLUDES) $(INCLUDE_KEY)$(tbb_root)/src/test $(INCLUDE_KEY)$(RML_SERVER_ROOT)
 | 
			
		||||
 | 
			
		||||
ifeq ($(rml_wcrm),1)
 | 
			
		||||
CPLUS_FLAGS+=/DRML_USE_WCRM
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# Suppress superfluous warnings for RML compilation
 | 
			
		||||
R_CPLUS_FLAGS =  $(subst DO_ITT_NOTIFY,DO_ITT_NOTIFY=0,$(CPLUS_FLAGS)) $(WARNING_SUPPRESS) \
 | 
			
		||||
		 $(DEFINE_KEY)TBB_USE_THREADING_TOOLS=0 $(DEFINE_KEY)__TBB_RML_STATIC=1 $(DEFINE_KEY)__TBB_NO_IMPLICIT_LINKAGE=1
 | 
			
		||||
 | 
			
		||||
%.$(OBJ): %.cpp
 | 
			
		||||
	$(CPLUS) $(COMPILE_ONLY) $(R_CPLUS_FLAGS) $(PIC_KEY) $(DSE_KEY) $(INCLUDES) $<
 | 
			
		||||
 | 
			
		||||
ifeq (linux,$(tbb_os))
 | 
			
		||||
omp_dynamic_link.$(OBJ): CPLUS_FLAGS+=-fno-exceptions
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
tbb_misc_rml.$(OBJ) $(RML_SERVER.OBJ): version_string.ver
 | 
			
		||||
 | 
			
		||||
RML_TEST.OBJ = test_job_automaton.$(OBJ) test_thread_monitor.$(OBJ) test_rml_tbb.$(OBJ) test_rml_omp.$(OBJ) test_rml_mixed.$(OBJ)
 | 
			
		||||
 | 
			
		||||
$(RML_TBB_DEP): %_rml.$(OBJ): %.cpp
 | 
			
		||||
	$(CPLUS) $(COMPILE_ONLY) $(OUTPUTOBJ_KEY)$@ $(R_CPLUS_FLAGS) $(PIC_KEY) $(DSE_KEY) $(INCLUDES) $<
 | 
			
		||||
 | 
			
		||||
$(RML_TEST.OBJ): %.$(OBJ): %.cpp
 | 
			
		||||
	$(CPLUS) $(COMPILE_ONLY) $(R_CPLUS_FLAGS) $(PIC_KEY) $(T_INCLUDES) $<
 | 
			
		||||
 | 
			
		||||
ifneq (,$(RML.DEF))
 | 
			
		||||
rml.def: $(RML.DEF)
 | 
			
		||||
	$(CPLUS) $(PREPROC_ONLY) $< $(CPLUS_FLAGS) $(INCLUDES) > $@
 | 
			
		||||
 | 
			
		||||
LIB_LINK_FLAGS += $(EXPORT_KEY)rml.def
 | 
			
		||||
$(RML.DLL): rml.def
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
$(RML.DLL): CPLUS_FLAGS += $(SDL_FLAGS)
 | 
			
		||||
$(RML.DLL): BUILDING_LIBRARY = $(RML.DLL)
 | 
			
		||||
$(RML.DLL): $(RML_TBB_DEP) $(RML_SERVER.OBJ) $(RML.RES) $(RML_NO_VERSION.DLL) $(RML_ASM.OBJ)
 | 
			
		||||
	$(LIB_LINK_CMD) $(LIB_OUTPUT_KEY)$(RML.DLL) $(RML_SERVER.OBJ) $(RML_TBB_DEP) $(RML_ASM.OBJ) $(RML.RES) $(LIB_LINK_LIBS) $(LIB_LINK_FLAGS)
 | 
			
		||||
 | 
			
		||||
ifneq (,$(RML_NO_VERSION.DLL))
 | 
			
		||||
$(RML_NO_VERSION.DLL):
 | 
			
		||||
	echo "INPUT ($(RML.DLL))" > $(RML_NO_VERSION.DLL)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
rml: $(RML.DLL) $(RML_TBB_CLIENT.OBJ) $(RML_OMP_CLIENT.OBJ)
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------
 | 
			
		||||
# End of rules for making the RML server shared library
 | 
			
		||||
#------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------
 | 
			
		||||
# Define rules for making the RML unit tests
 | 
			
		||||
#------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
add_debug=$(basename $(1))_debug$(suffix $(1))
 | 
			
		||||
cross_suffix=$(if $(crosstest),$(if $(DEBUG_SUFFIX),$(subst _debug,,$(1)),$(call add_debug,$(1))),$(1))
 | 
			
		||||
 | 
			
		||||
RML_TESTS = test_job_automaton.$(TEST_EXT) test_thread_monitor.$(TEST_EXT)
 | 
			
		||||
RML_CUSTOM_TESTS = test_rml_tbb.$(TEST_EXT) test_rml_omp.$(TEST_EXT) test_rml_mixed.$(TEST_EXT) test_rml_omp_c_linkage.$(TEST_EXT)
 | 
			
		||||
 | 
			
		||||
test_rml_tbb.$(TEST_EXT): test_rml_tbb.$(OBJ) $(RML_TBB_CLIENT.OBJ) $(TBB_DEP_RML_TEST)
 | 
			
		||||
	$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) test_rml_tbb.$(OBJ) $(RML_TBB_CLIENT.OBJ) $(TBB_DEP_RML_TEST) $(LIBS) $(LINK_FLAGS)
 | 
			
		||||
 | 
			
		||||
test_rml_omp.$(TEST_EXT): test_rml_omp.$(OBJ) $(RML_OMP_CLIENT.OBJ) $(TBB_DEP_NON_RML_TEST)
 | 
			
		||||
	$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) test_rml_omp.$(OBJ) $(RML_OMP_CLIENT.OBJ) $(TBB_DEP_NON_RML_TEST) $(LIBS) $(LINK_FLAGS)
 | 
			
		||||
 | 
			
		||||
test_rml_mixed.$(TEST_EXT): test_rml_mixed.$(OBJ) $(RML_TBB_CLIENT.OBJ) $(RML_OMP_CLIENT.OBJ) $(TBB_DEP_RML_TEST)
 | 
			
		||||
	$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) test_rml_mixed.$(OBJ) $(RML_TBB_CLIENT.OBJ) $(RML_OMP_CLIENT.OBJ) $(TBB_DEP_RML_TEST) $(LIBS) $(LINK_FLAGS)
 | 
			
		||||
 | 
			
		||||
rml_omp_stub.$(OBJ): rml_omp_stub.cpp
 | 
			
		||||
	$(CPLUS) $(COMPILE_ONLY) $(M_CPLUS_FLAGS) $(WARNING_SUPPRESS) $(T_INCLUDES) $(PIC_KEY) $<
 | 
			
		||||
 | 
			
		||||
test_rml_omp_c_linkage.$(TEST_EXT): test_rml_omp_c_linkage.$(OBJ) rml_omp_stub.$(OBJ) omp_dynamic_link.$(OBJ)
 | 
			
		||||
	$(CONLY) $(C_FLAGS) $(OUTPUT_KEY)$@ test_rml_omp_c_linkage.$(OBJ) rml_omp_stub.$(OBJ) omp_dynamic_link.$(OBJ) $(LIBS) $(LINK_FLAGS)
 | 
			
		||||
 | 
			
		||||
$(RML_TESTS): %.$(TEST_EXT): %.$(OBJ) $(TBB_DEP_NON_RML_TEST)
 | 
			
		||||
	$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $< $(TBB_DEP_NON_RML_TEST) $(LIBS) $(LINK_FLAGS)
 | 
			
		||||
 | 
			
		||||
### run_cmd is usually empty
 | 
			
		||||
rml_test: $(call cross_suffix,$(RML.DLL)) $(TEST_PREREQUISITE) $(RML_TESTS) $(RML_CUSTOM_TESTS)
 | 
			
		||||
	$(run_cmd) ./test_job_automaton.$(TEST_EXT) $(args)
 | 
			
		||||
	$(run_cmd) ./test_thread_monitor.$(TEST_EXT) $(args)
 | 
			
		||||
	$(run_cmd) ./test_rml_tbb.$(TEST_EXT) $(args)
 | 
			
		||||
	$(run_cmd) ./test_rml_omp.$(TEST_EXT) $(args)
 | 
			
		||||
	$(run_cmd) ./test_rml_mixed.$(TEST_EXT) $(args)
 | 
			
		||||
	$(run_cmd) ./test_rml_omp_c_linkage.$(TEST_EXT) $(args)
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------
 | 
			
		||||
# End of rules for making the TBBMalloc unit tests
 | 
			
		||||
#------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
# Include automatically generated dependencies
 | 
			
		||||
-include *.d
 | 
			
		||||
							
								
								
									
										114
									
								
								cs440-acg/ext/tbb/build/Makefile.tbb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								cs440-acg/ext/tbb/build/Makefile.tbb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,114 @@
 | 
			
		||||
# 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
 | 
			
		||||
 | 
			
		||||
# 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
 | 
			
		||||
							
								
								
									
										69
									
								
								cs440-acg/ext/tbb/build/Makefile.tbbbind
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								cs440-acg/ext/tbb/build/Makefile.tbbbind
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,69 @@
 | 
			
		||||
# 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 tbbbind 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))
 | 
			
		||||
 | 
			
		||||
.PHONY: tbbbind
 | 
			
		||||
.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)__TBBBIND_BUILD=1
 | 
			
		||||
 | 
			
		||||
# Suppress superfluous warnings for tbbbind compilation
 | 
			
		||||
WARNING_KEY += $(WARNING_SUPPRESS)
 | 
			
		||||
 | 
			
		||||
include $(tbb_root)/build/common_rules.inc
 | 
			
		||||
 | 
			
		||||
TBBBIND.OBJ = tbb_bind.$(OBJ)
 | 
			
		||||
 | 
			
		||||
ifneq (,$(TBBBIND.DEF))
 | 
			
		||||
tbbbind.def: $(TBBBIND.DEF)
 | 
			
		||||
	$(CPLUS) $(PREPROC_ONLY) $< $(CPLUS_FLAGS) $(INCLUDES) > $@
 | 
			
		||||
 | 
			
		||||
LIB_LINK_FLAGS += $(EXPORT_KEY)tbbbind.def
 | 
			
		||||
$(TBBBIND.DLL): tbbbind.def
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifneq (,$(TBBBIND.DLL))
 | 
			
		||||
$(TBBBIND.DLL): BUILDING_LIBRARY = $(TBBBIND.DLL)
 | 
			
		||||
$(TBBBIND.DLL): $(TBBBIND.OBJ) $(TBBBIND_NO_VERSION.DLL)
 | 
			
		||||
	$(LIB_LINK_CMD) $(LIB_OUTPUT_KEY)$(TBBBIND.DLL) $(TBBBIND.OBJ) $(HWLOC.LIB) $(LIB_LINK_FLAGS)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifneq (,$(TBBBIND_NO_VERSION.DLL))
 | 
			
		||||
$(TBBBIND_NO_VERSION.DLL):
 | 
			
		||||
	echo "INPUT ($(TBBBIND.DLL))" > $(TBBBIND_NO_VERSION.DLL)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
tbbbind: $(TBBBIND.DLL)
 | 
			
		||||
 | 
			
		||||
#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
 | 
			
		||||
							
								
								
									
										256
									
								
								cs440-acg/ext/tbb/build/Makefile.tbbmalloc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										256
									
								
								cs440-acg/ext/tbb/build/Makefile.tbbmalloc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,256 @@
 | 
			
		||||
# 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
 | 
			
		||||
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
 | 
			
		||||
							
								
								
									
										105
									
								
								cs440-acg/ext/tbb/build/Makefile.tbbproxy
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										105
									
								
								cs440-acg/ext/tbb/build/Makefile.tbbproxy
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,105 @@
 | 
			
		||||
# 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_tbbproxy: tbbproxy tbbproxy_test
 | 
			
		||||
 | 
			
		||||
tbb_root ?= $(TBBROOT)
 | 
			
		||||
BUILDING_PHASE=1
 | 
			
		||||
include $(tbb_root)/build/common.inc
 | 
			
		||||
DEBUG_SUFFIX=$(findstring _debug,_$(cfg))
 | 
			
		||||
 | 
			
		||||
PROXY_ROOT ?= $(tbb_root)/src/tbbproxy
 | 
			
		||||
PROXY_SOURCE_ROOT ?= $(PROXY_ROOT)
 | 
			
		||||
 | 
			
		||||
VPATH = $(tbb_root)/src/tbb/$(ASSEMBLY_SOURCE) $(tbb_root)/src/tbb $(tbb_root)/src/test
 | 
			
		||||
VPATH += $(PROXY_ROOT) $(PROXY_SOURCE_ROOT)
 | 
			
		||||
 | 
			
		||||
CPLUS_FLAGS += $(DEFINE_KEY)__TBB_DLL_NAME=$(TBB.DLL)
 | 
			
		||||
CPLUS_FLAGS += $(DEFINE_KEY)__TBB_LST=$(TBB.LST)
 | 
			
		||||
CPLUS_FLAGS += $(foreach dir,$(VPATH),$(INCLUDE_KEY)$(dir))
 | 
			
		||||
CPLUS_FLAGS += $(PIC_KEY) $(DSE_KEY)
 | 
			
		||||
 | 
			
		||||
include $(tbb_root)/build/common_rules.inc
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------
 | 
			
		||||
# Define rules for making the TBB Proxy static library.
 | 
			
		||||
#------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
# Object files that make up TBB Proxy
 | 
			
		||||
PROXY_CPLUS.OBJ = tbbproxy.$(OBJ)
 | 
			
		||||
PROXY_ASM.OBJ   = tbbproxy-asm.$(OBJ)
 | 
			
		||||
PROXY.OBJ := $(PROXY_CPLUS.OBJ) $(PROXY_ASM.OBJ)
 | 
			
		||||
 | 
			
		||||
# Not using intrinsics prevents undesired dependence on ICL libraries (e.g. libirc).
 | 
			
		||||
# Not using default libs prevents link issues caused by different CRT versions in tbbproxy and in an app.
 | 
			
		||||
$(PROXY.OBJ): CPLUS_FLAGS += $(DEFINE_KEY)ARCH_$(arch) $(DEFINE_KEY)OS_$(tbb_os) $(NOINTRINSIC_KEY) $(NODEFAULTLIB_KEY)
 | 
			
		||||
 | 
			
		||||
$(PROXY_CPLUS.OBJ): CPLUS_FLAGS+=$(if $(filter windows.%cl,$(tbb_os).$(compiler)),/Fdtbbproxy$(DEBUG_SUFFIX).pdb)
 | 
			
		||||
$(PROXY_CPLUS.OBJ): %.$(OBJ): %.cpp
 | 
			
		||||
	$(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS) $(INCLUDES) $<
 | 
			
		||||
 | 
			
		||||
$(PROXY.LIB): $(PROXY.OBJ)
 | 
			
		||||
	$(AR) $(AR_FLAGS) $(AR_OUTPUT_KEY)$@ $^
 | 
			
		||||
 | 
			
		||||
.PRECIOUS : %.$(ASMEXT)
 | 
			
		||||
tbbproxy-asm.$(ASMEXT) : tbbproxy-$(tbb_os).$(ASMEXT) $(TBB.LST) $(TBB-OBJECTS.LST)
 | 
			
		||||
	$(CPLUS) $(PREPROC_ONLY) $< $(INCLUDES) $(CPLUS_FLAGS) $(DEFINE_KEY)__TBB_BUILD=1 > $@
 | 
			
		||||
 | 
			
		||||
.PHONY: tbbproxy
 | 
			
		||||
ifeq (windows,$(tbb_os))
 | 
			
		||||
tbbproxy: $(PROXY.LIB)
 | 
			
		||||
else
 | 
			
		||||
tbbproxy:
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------
 | 
			
		||||
# End of rules for making the TBB Proxy static library
 | 
			
		||||
#------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------
 | 
			
		||||
# Define rules for making the TBB Proxy unit tests
 | 
			
		||||
#------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
add_debug=$(basename $(1))_debug$(suffix $(1))
 | 
			
		||||
cross_suffix=$(if $(crosstest),$(if $(DEBUG_SUFFIX),$(subst _debug,,$(1)),$(call add_debug,$(1))),$(1))
 | 
			
		||||
 | 
			
		||||
PROXY_LIB        = $(call cross_suffix,$(PROXY.LIB))
 | 
			
		||||
PROXY_TESTS_SRCS = test_runtime_loader.cpp
 | 
			
		||||
PROXY_TESTS_OBJS = $(PROXY_TESTS_SRCS:.cpp=.$(OBJ))
 | 
			
		||||
PROXY_TESTS_EXES = $(PROXY_TESTS_OBJS:.$(OBJ)=.$(TEST_EXT))
 | 
			
		||||
 | 
			
		||||
# Run rules.
 | 
			
		||||
.PHONY: tbbproxy_test
 | 
			
		||||
ifeq (windows,$(tbb_os))
 | 
			
		||||
tbbproxy_test: $(call cross_suffix,$(PROXY.LIB)) $(TEST_PREREQUISITE) $(PROXY_TESTS_EXES)
 | 
			
		||||
	$(run_cmd) ./test_runtime_loader.$(TEST_EXT) $(args)
 | 
			
		||||
else
 | 
			
		||||
tbbproxy_test:
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# Link rules.
 | 
			
		||||
$(PROXY_TESTS_EXES): %.$(TEST_EXT): %.$(OBJ) $(PROXY_LIB)
 | 
			
		||||
	$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $< $(PROXY_LIB) $(LIBS) $(LIBDL) $(LINK_FLAGS)
 | 
			
		||||
 | 
			
		||||
# Compilation rules.
 | 
			
		||||
$(PROXY_TESTS_OBJS): %.$(OBJ): %.cpp
 | 
			
		||||
	$(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(CXX_WARN_SUPPRESS) $(INCLUDES) $(OUTPUT_KEY)$@ $<
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------
 | 
			
		||||
# End of rules for making the TBB Proxy unit tests
 | 
			
		||||
#------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
# Include automatically generated dependencies
 | 
			
		||||
-include *.d
 | 
			
		||||
							
								
								
									
										321
									
								
								cs440-acg/ext/tbb/build/Makefile.test
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										321
									
								
								cs440-acg/ext/tbb/build/Makefile.test
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,321 @@
 | 
			
		||||
# 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)
 | 
			
		||||
 | 
			
		||||
ifdef use_proxy
 | 
			
		||||
    USE_PROXY_FLAG = $(DEFINE_KEY)HARNESS_USE_RUNTIME_LOADER
 | 
			
		||||
    CPLUS_FLAGS += $(USE_PROXY_FLAG)
 | 
			
		||||
    LINK_TBB.LIB = $(PROXY.LIB)
 | 
			
		||||
    LIBS += $(LIBDL)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
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)
 | 
			
		||||
$(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_input_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_arena_constraints_hwloc.$(TEST_EXT): LIBS += $(HWLOC.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
 | 
			
		||||
							
								
								
									
										15
									
								
								cs440-acg/ext/tbb/build/OpenBSD.clang.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								cs440-acg/ext/tbb/build/OpenBSD.clang.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
# 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
 | 
			
		||||
							
								
								
									
										15
									
								
								cs440-acg/ext/tbb/build/OpenBSD.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								cs440-acg/ext/tbb/build/OpenBSD.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
# 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
 | 
			
		||||
							
								
								
									
										88
									
								
								cs440-acg/ext/tbb/build/SunOS.gcc.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								cs440-acg/ext/tbb/build/SunOS.gcc.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,88 @@
 | 
			
		||||
# 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.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
							
								
								
									
										79
									
								
								cs440-acg/ext/tbb/build/SunOS.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								cs440-acg/ext/tbb/build/SunOS.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,79 @@
 | 
			
		||||
# 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)
 | 
			
		||||
							
								
								
									
										88
									
								
								cs440-acg/ext/tbb/build/SunOS.suncc.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								cs440-acg/ext/tbb/build/SunOS.suncc.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,88 @@
 | 
			
		||||
# 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.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
							
								
								
									
										126
									
								
								cs440-acg/ext/tbb/build/android.clang.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										126
									
								
								cs440-acg/ext/tbb/build/android.clang.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,126 @@
 | 
			
		||||
# 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.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
							
								
								
									
										113
									
								
								cs440-acg/ext/tbb/build/android.gcc.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										113
									
								
								cs440-acg/ext/tbb/build/android.gcc.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,113 @@
 | 
			
		||||
# 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.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
							
								
								
									
										116
									
								
								cs440-acg/ext/tbb/build/android.icc.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								cs440-acg/ext/tbb/build/android.icc.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,116 @@
 | 
			
		||||
# 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.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
							
								
								
									
										59
									
								
								cs440-acg/ext/tbb/build/android.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								cs440-acg/ext/tbb/build/android.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,59 @@
 | 
			
		||||
# 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 </dev/null 2>&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
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										63
									
								
								cs440-acg/ext/tbb/build/android.linux.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								cs440-acg/ext/tbb/build/android.linux.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,63 @@
 | 
			
		||||
# 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)
 | 
			
		||||
							
								
								
									
										144
									
								
								cs440-acg/ext/tbb/build/android.linux.launcher.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										144
									
								
								cs440-acg/ext/tbb/build/android.linux.launcher.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,144 @@
 | 
			
		||||
#!/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 <repeats>] [-u] [-l <library>] <executable> <arg1> <arg2> <argN>
 | 
			
		||||
#         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 <repeats> specifies number of times to repeat execution
 | 
			
		||||
#         where: -u is ignored on Android
 | 
			
		||||
#         where: -l <library> 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 #
 | 
			
		||||
							
								
								
									
										72
									
								
								cs440-acg/ext/tbb/build/android.macos.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								cs440-acg/ext/tbb/build/android.macos.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,72 @@
 | 
			
		||||
# 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)
 | 
			
		||||
							
								
								
									
										74
									
								
								cs440-acg/ext/tbb/build/android.windows.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								cs440-acg/ext/tbb/build/android.windows.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,74 @@
 | 
			
		||||
# 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
 | 
			
		||||
							
								
								
									
										72
									
								
								cs440-acg/ext/tbb/build/big_iron.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								cs440-acg/ext/tbb/build/big_iron.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,72 @@
 | 
			
		||||
# 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 =
 | 
			
		||||
							
								
								
									
										204
									
								
								cs440-acg/ext/tbb/build/build.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										204
									
								
								cs440-acg/ext/tbb/build/build.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,204 @@
 | 
			
		||||
#!/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: <prefix>/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")
 | 
			
		||||
							
								
								
									
										7
									
								
								cs440-acg/ext/tbb/build/codecov.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								cs440-acg/ext/tbb/build/codecov.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
src/tbb
 | 
			
		||||
src/tbbmalloc
 | 
			
		||||
include/tbb
 | 
			
		||||
src/rml/server
 | 
			
		||||
src/rml/client
 | 
			
		||||
src/rml/include
 | 
			
		||||
source/malloc
 | 
			
		||||
							
								
								
									
										170
									
								
								cs440-acg/ext/tbb/build/common.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										170
									
								
								cs440-acg/ext/tbb/build/common.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,170 @@
 | 
			
		||||
# 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 <os>.<compiler>.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 =
 | 
			
		||||
							
								
								
									
										169
									
								
								cs440-acg/ext/tbb/build/common_rules.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										169
									
								
								cs440-acg/ext/tbb/build/common_rules.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,169 @@
 | 
			
		||||
# 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) $(if $(use_proxy),$(PROXY.LIB))
 | 
			
		||||
	$(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 ^<stdio.h^> >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
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										203
									
								
								cs440-acg/ext/tbb/build/detect.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										203
									
								
								cs440-acg/ext/tbb/build/detect.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,203 @@
 | 
			
		||||
// 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");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										62
									
								
								cs440-acg/ext/tbb/build/generate_tbbvars.bat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								cs440-acg/ext/tbb/build/generate_tbbvars.bat
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,62 @@
 | 
			
		||||
@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
 | 
			
		||||
							
								
								
									
										67
									
								
								cs440-acg/ext/tbb/build/generate_tbbvars.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								cs440-acg/ext/tbb/build/generate_tbbvars.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,67 @@
 | 
			
		||||
#!/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 <<EOF
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
export TBBROOT="${tbb_root}" #
 | 
			
		||||
tbb_bin="${bin_dir}" #
 | 
			
		||||
if [ -z "\$CPATH" ]; then #
 | 
			
		||||
    export CPATH="\${TBBROOT}/include" #
 | 
			
		||||
else #
 | 
			
		||||
    export CPATH="\${TBBROOT}/include:\$CPATH" #
 | 
			
		||||
fi #
 | 
			
		||||
if [ -z "\$${2}LIBRARY_PATH" ]; then #
 | 
			
		||||
    export ${2}LIBRARY_PATH="\${tbb_bin}" #
 | 
			
		||||
else #
 | 
			
		||||
    export ${2}LIBRARY_PATH="\${tbb_bin}:\$${2}LIBRARY_PATH" #
 | 
			
		||||
fi #
 | 
			
		||||
if [ -z "\$${1}LD_LIBRARY_PATH" ]; then #
 | 
			
		||||
    export ${1}LD_LIBRARY_PATH="\${tbb_bin}" #
 | 
			
		||||
else #
 | 
			
		||||
    export ${1}LD_LIBRARY_PATH="\${tbb_bin}:\$${1}LD_LIBRARY_PATH" #
 | 
			
		||||
fi #
 | 
			
		||||
${TBB_CUSTOM_VARS_SH} #
 | 
			
		||||
EOF
 | 
			
		||||
cat >./tbbvars.csh <<EOF
 | 
			
		||||
#!/bin/csh
 | 
			
		||||
setenv TBBROOT "${tbb_root}" #
 | 
			
		||||
setenv tbb_bin "${bin_dir}" #
 | 
			
		||||
if (! \$?CPATH) then #
 | 
			
		||||
    setenv CPATH "\${TBBROOT}/include" #
 | 
			
		||||
else #
 | 
			
		||||
    setenv CPATH "\${TBBROOT}/include:\$CPATH" #
 | 
			
		||||
endif #
 | 
			
		||||
if (! \$?${2}LIBRARY_PATH) then #
 | 
			
		||||
    setenv ${2}LIBRARY_PATH "\${tbb_bin}" #
 | 
			
		||||
else #
 | 
			
		||||
    setenv ${2}LIBRARY_PATH "\${tbb_bin}:\$${2}LIBRARY_PATH" #
 | 
			
		||||
endif #
 | 
			
		||||
if (! \$?${1}LD_LIBRARY_PATH) then #
 | 
			
		||||
    setenv ${1}LD_LIBRARY_PATH "\${tbb_bin}" #
 | 
			
		||||
else #
 | 
			
		||||
    setenv ${1}LD_LIBRARY_PATH "\${tbb_bin}:\$${1}LD_LIBRARY_PATH" #
 | 
			
		||||
endif #
 | 
			
		||||
${TBB_CUSTOM_VARS_CSH} #
 | 
			
		||||
EOF
 | 
			
		||||
# Workaround for copying Android* specific stl shared library to "."
 | 
			
		||||
if [ ! -z "${LIB_STL_ANDROID}" ]; then #
 | 
			
		||||
	cp ${LIB_STL_ANDROID} . #
 | 
			
		||||
fi #
 | 
			
		||||
							
								
								
									
										247
									
								
								cs440-acg/ext/tbb/build/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										247
									
								
								cs440-acg/ext/tbb/build/index.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,247 @@
 | 
			
		||||
<HTML>
 | 
			
		||||
<BODY>
 | 
			
		||||
 | 
			
		||||
<H2>Overview</H2>
 | 
			
		||||
This directory contains the internal Makefile infrastructure for Intel® Threading Building Blocks (Intel® TBB).
 | 
			
		||||
 | 
			
		||||
<P>
 | 
			
		||||
See below for how to <A HREF="#build">build</A> Intel TBB and how to <A HREF="#port">port</A> Intel TBB
 | 
			
		||||
to a new platform, operating system or architecture.
 | 
			
		||||
</P>
 | 
			
		||||
 | 
			
		||||
<H2>Files</H2>
 | 
			
		||||
The files here are not intended to be used directly.  See below for usage.
 | 
			
		||||
<DL>
 | 
			
		||||
<DT><A HREF="Makefile.tbb">Makefile.tbb</A>
 | 
			
		||||
<DD>Main Makefile to build the Intel TBB library.
 | 
			
		||||
    Invoked via 'make tbb' from <A HREF="../Makefile">top-level Makefile</A>.
 | 
			
		||||
<DT><A HREF="Makefile.tbbmalloc">Makefile.tbbmalloc</A>
 | 
			
		||||
<DD>Main Makefile to build the Intel TBB scalable memory allocator library as well as its tests.
 | 
			
		||||
    Invoked via 'make tbbmalloc' from <A HREF="../Makefile">top-level Makefile</A>.
 | 
			
		||||
<DT><A HREF="Makefile.tbbbind">Makefile.tbbbind</A>
 | 
			
		||||
<DD>Main Makefile to build the tbbbind library.
 | 
			
		||||
    Invoked via 'make tbbbind' from <A HREF="../Makefile">top-level Makefile</A>
 | 
			
		||||
<DT><A HREF="Makefile.test">Makefile.test</A>
 | 
			
		||||
<DD>Main Makefile to build and run the tests for the Intel TBB library.
 | 
			
		||||
    Invoked via 'make test' from <A HREF="../Makefile">top-level Makefile</A>.
 | 
			
		||||
<DT><A HREF="common.inc">common.inc</A>
 | 
			
		||||
<DD>Main common included Makefile that includes OS-specific and compiler-specific Makefiles.
 | 
			
		||||
<DT><os>.inc
 | 
			
		||||
<DD>OS-specific Makefile for a particular <os>.
 | 
			
		||||
<DT><os>.<compiler>.inc
 | 
			
		||||
<DD>Compiler-specific Makefile for a particular <os> / <compiler> combination.
 | 
			
		||||
<DT>*.sh
 | 
			
		||||
<DD>Infrastructure utilities for Linux* OS, macOS*, and UNIX*-related operating systems.
 | 
			
		||||
<DT>*.js, *.bat
 | 
			
		||||
<DD>Infrastructure utilities for Windows* OS.
 | 
			
		||||
</DL>
 | 
			
		||||
 | 
			
		||||
<A NAME="build"><H2>To Build</H2></A>
 | 
			
		||||
<P>
 | 
			
		||||
To port Intel TBB to a new platform, operating system or architecture, see the <A HREF="#port">porting directions</A> below.
 | 
			
		||||
</P>
 | 
			
		||||
 | 
			
		||||
<H3>Software prerequisites:</H3>
 | 
			
		||||
<OL>
 | 
			
		||||
<LI>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.
 | 
			
		||||
<LI>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 <TT>make</TT> with the correct GNU make command for
 | 
			
		||||
    your system (for example, <TT>gmake</TT>). GNU make version 3.80 and more recent are supported.
 | 
			
		||||
</OL>
 | 
			
		||||
 | 
			
		||||
<P>
 | 
			
		||||
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).
 | 
			
		||||
</P>
 | 
			
		||||
<OL>
 | 
			
		||||
<LI>Change to the <A HREF="../index.html">top-level directory</A> of the installed software.
 | 
			
		||||
<LI>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).
 | 
			
		||||
<LI>Invoke GNU make using no arguments, for example, <TT>make</TT>.
 | 
			
		||||
</OL>
 | 
			
		||||
 | 
			
		||||
<P>
 | 
			
		||||
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:
 | 
			
		||||
</P>
 | 
			
		||||
<OL>
 | 
			
		||||
<LI>Change to the <A HREF="../index.html">top-level directory</A> of the installed software.
 | 
			
		||||
<LI>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).
 | 
			
		||||
<LI>Explicitly specify the architecture when invoking GNU make, e.g. <TT>make arch=ia32</TT>.
 | 
			
		||||
</OL>
 | 
			
		||||
 | 
			
		||||
<P>The default make target will build the release version of the Intel TBB library.</P>
 | 
			
		||||
<P>Other targets are available in the top-level Makefile. You might find the following targets useful:
 | 
			
		||||
<UL>
 | 
			
		||||
<LI><TT>make test</TT> will build and run Intel TBB <A HREF="../src/test">unit-tests</A>;
 | 
			
		||||
<LI><TT>make examples</TT> will build and run Intel TBB <A HREF="../examples/index.html">examples</A>. Available in the open-source version only.
 | 
			
		||||
For the commercial version, you can download Intel TBB Samples at the <a href="https://software.intel.com/en-us/product-code-samples?topic=20828">Intel® Software Product Samples and Tutorials</a> website;
 | 
			
		||||
<LI><TT>make all</TT> will do all of the above. Available in the open-source version only.
 | 
			
		||||
</UL>
 | 
			
		||||
See also the list of other targets below.
 | 
			
		||||
</P>
 | 
			
		||||
 | 
			
		||||
<P>
 | 
			
		||||
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.
 | 
			
		||||
</P>
 | 
			
		||||
 | 
			
		||||
<P>
 | 
			
		||||
To perform different build and/or test operations, use the following steps.
 | 
			
		||||
</P>
 | 
			
		||||
<OL>
 | 
			
		||||
<LI>Change to the <A HREF="../index.html">top-level directory</A> of the installed software.
 | 
			
		||||
<LI>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).
 | 
			
		||||
<LI>Invoke GNU make by using one or more of the following commands.
 | 
			
		||||
    <DL>
 | 
			
		||||
    <DT><TT>make</TT>
 | 
			
		||||
    <DD>Default build.  Equivalent to <TT>make tbb tbbmalloc</TT>.
 | 
			
		||||
    <DT><TT>make all</TT>
 | 
			
		||||
    <DD>Equivalent to <TT>make tbb tbbmalloc test examples</TT>. Available in the open-source version only.
 | 
			
		||||
    <DT><TT>cd src;make release</TT>
 | 
			
		||||
    <DD>Build and test release libraries only.
 | 
			
		||||
    <DT><TT>cd src;make debug</TT>
 | 
			
		||||
    <DD>Build and test debug libraries only. 
 | 
			
		||||
    <DT><TT>make tbb</TT>
 | 
			
		||||
    <DD>Make Intel TBB release libraries.
 | 
			
		||||
    <DT><TT>make tbbmalloc</TT>
 | 
			
		||||
    <DD>Make Intel TBB scalable memory allocator libraries.
 | 
			
		||||
    <DT><TT>make tbbbind</TT>
 | 
			
		||||
    <DD>Make the tbbbind library.
 | 
			
		||||
    <DT><TT>make test</TT>
 | 
			
		||||
    <DD>Compile and run unit-tests
 | 
			
		||||
    <DT><TT>make examples</TT>
 | 
			
		||||
    <DD>Build libraries and run all examples, like doing <TT>make clean release</TT> from <A HREF="../examples/Makefile">the general example Makefile</A>.
 | 
			
		||||
        Available in the open-source version only.
 | 
			
		||||
    <DT><TT>make python</TT>
 | 
			
		||||
    <DD>Build, install, and test Python* API for Intel TBB. See <A HREF="../python/index.html">details here</A>.
 | 
			
		||||
    <DT><TT>make compiler=<B>{</B>icl, icc, gcc, clang<B>}</B> <B>[</B>(above options or targets)<B>]</B></TT>
 | 
			
		||||
    <DD>Build and run as above, but use specified compilers instead of default, native compilers
 | 
			
		||||
    <ol>
 | 
			
		||||
        <li><tt><b> {</b>icl, icc<b>}</b> </tt> - to use Intel® compilers (<tt>icl</tt> on Windows OS,  <tt>icc</tt>  on Linux OS or macOS). </li>
 | 
			
		||||
        <li><tt>gcc</tt>  - to use g++ (e.g. MinGW on Windows OS)</li>
 | 
			
		||||
        <li><tt>clang</tt> - to use Clang compiler</li>
 | 
			
		||||
    </ol>
 | 
			
		||||
    <DT><TT>make compiler=clang stdlib=libc++ <B>[</B>(above options or targets)<B>]</B></TT>
 | 
			
		||||
    <DD>Build and run as above, but use <TT>libc++</TT> as a standard c++ library for clang.
 | 
			
		||||
    <DT><TT>make stdver=<B>{</B>c++11, c++14, ...<B>}</B> <B>[</B>(above options or targets)<B>]</B></TT>
 | 
			
		||||
    <DD>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 <TT>stdver</TT> will be used as a parameter to the appropriate
 | 
			
		||||
      compiler option (such as <TT>-std</TT>); the behavior in case of unsupported value is compiler-specific.
 | 
			
		||||
    <DT><TT>make target_app=<B>{</B>win8ui, uwp, uwd<B>}</B> [target_mode=store] <B>[</B>(above options or targets)<B>]</B></TT>
 | 
			
		||||
    <DD>Build and run as above, but use API that is compliant with Universal Windows* applications. Use <TT>win8ui</TT> option, if you want to use Intel TBB in Windows* 8 Universal application, <TT>uwp</TT> in case of Windows* 10 Universal Windows application and <TT>uwd</TT> for the usage inside Universal Windows* driver.
 | 
			
		||||
    <TT>target_mode=store</TT> 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.
 | 
			
		||||
    <DT><TT>ndk-build target=android <B>[</B>(above options or targets)<B>]</B></TT>
 | 
			
		||||
    <DD>Build and run as above, but build libraries for Android* OS by Android NDK that should be installed. Makefiles were tested with revision 8.
 | 
			
		||||
    <DT><TT>make arch=<B>{</B>ia32, intel64, ia64<B>}</B> <B>[</B>(above options or targets)<B>]</B></TT>
 | 
			
		||||
    <DD>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.
 | 
			
		||||
    <DT><TT>make tbb_root=<B>{</B>(Intel TBB directory)<B>}</B> <B>[</B>(above options or targets)<B>]</B></TT>
 | 
			
		||||
    <DD>Build and run as above; for use when invoking <TT>make</TT> from a directory other than the <A HREF="../index.html">top-level directory</A>.
 | 
			
		||||
    <DT><TT>make tbb_build_dir=<B>{</B>(build directory)<B>}</B> <B>[</B>(above options or targets)<B>]</B></TT>
 | 
			
		||||
    <DD>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.
 | 
			
		||||
    <DT><TT>make tbb_build_prefix=<B>{</B>(build sub-directory)<B>}</B> <B>[</B>(above options or targets)<B>]</B></TT>
 | 
			
		||||
    <DD>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.
 | 
			
		||||
    <DT><TT>make tbb_cpf=1 <B>[</B>(above options or targets)<B>]</B></TT>
 | 
			
		||||
    <DD>Build and run as above, but build and use libraries with the Community Preview Features enabled, rather than the default libraries.
 | 
			
		||||
    <DT><TT>make <B>[</B>(above options)<B>]</B> clean</TT>
 | 
			
		||||
    <DD>Remove any executables or intermediate files produced by the above commands.
 | 
			
		||||
        Includes build directories, object files, libraries and test executables.
 | 
			
		||||
    </DL>
 | 
			
		||||
</OL>
 | 
			
		||||
 | 
			
		||||
<A NAME="port"><H2>To Port</H2></A>
 | 
			
		||||
<P>
 | 
			
		||||
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.
 | 
			
		||||
</P>
 | 
			
		||||
 | 
			
		||||
<H4>To port the Intel TBB source code:</H4>
 | 
			
		||||
<OL>
 | 
			
		||||
<LI>If porting to a new architecture, create a file that describes the architecture-specific details for that architecture.
 | 
			
		||||
    <UL>
 | 
			
		||||
    <LI>Create a <os>_<architecture>.h file in the <A HREF="../include/tbb/machine">include/tbb/machine</A> directory
 | 
			
		||||
	that describes these details.
 | 
			
		||||
	<UL>
 | 
			
		||||
	<LI>The <os>_<architecture>.h is named after the operating system and architecture as recognized by
 | 
			
		||||
	    <A HREF="../include/tbb/tbb_machine.h">include/tbb/tbb_machine.h</A> and the Makefile infrastructure.
 | 
			
		||||
	<LI>This file defines the implementations of synchronization operations, and also the
 | 
			
		||||
	    scheduler yield function, for the operating system and architecture.
 | 
			
		||||
	<LI>Several examples of <os>_<architecture>.h files can be found in the
 | 
			
		||||
	    <A HREF="../include/tbb/machine">include/tbb/machine</A> directory.
 | 
			
		||||
	    <UL>
 | 
			
		||||
	    <LI>A minimal implementation defines the 4-byte and 8-byte compare-and-swap operations,
 | 
			
		||||
		and the scheduler yield function.  See <A HREF="../include/tbb/machine/mac_ppc.h">include/tbb/machine/mac_ppc.h</A>
 | 
			
		||||
		for an example of a minimal implementation.
 | 
			
		||||
	    <LI>More complex implementation examples can also be found in the
 | 
			
		||||
		<A HREF="../include/tbb/machine">include/tbb/machine</A> 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.
 | 
			
		||||
	    <LI>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.
 | 
			
		||||
	    <LI>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 <A HREF="../src/tbb">src/tbb</A> directory).
 | 
			
		||||
	    </UL>
 | 
			
		||||
	</UL>
 | 
			
		||||
    <LI>Modify <A HREF="../include/tbb/tbb_machine.h">include/tbb/tbb_machine.h</A>, if needed, to invoke the appropriate
 | 
			
		||||
	<os>_<architecture>.h file in the <A HREF="../include/tbb/machine">include/tbb/machine</A> directory.
 | 
			
		||||
    </UL>
 | 
			
		||||
<LI>Add an implementation of DetectNumberOfWorkers() in <A HREF="../src/tbb/tbb_misc.h">src/tbb/tbb_misc.h</A>,
 | 
			
		||||
    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.
 | 
			
		||||
<LI>Either properly define FillDynamicLinks for use in
 | 
			
		||||
    <A HREF="../src/tbb/cache_aligned_allocator.cpp">src/tbb/cache_aligned_allocator.cpp</A>,
 | 
			
		||||
    or hardcode the allocator to be used.
 | 
			
		||||
<LI>Additional types might be required in the union defined in
 | 
			
		||||
    <A HREF="../include/tbb/aligned_space.h">include/tbb/aligned_space.h</A>
 | 
			
		||||
    to ensure proper alignment on your platform.
 | 
			
		||||
<LI>Changes may be required in <A HREF="../include/tbb/tick_count.h">include/tbb/tick_count.h</A>
 | 
			
		||||
    for systems that do not provide gettimeofday.
 | 
			
		||||
</OL>
 | 
			
		||||
 | 
			
		||||
<H4>To port the Makefile infrastructure:</H4>
 | 
			
		||||
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.
 | 
			
		||||
<OL>
 | 
			
		||||
<LI>The <A HREF="../Makefile">top-level Makefile</A> includes <A HREF="common.inc">common.inc</A> to determine the operating system.
 | 
			
		||||
    <UL>
 | 
			
		||||
    <LI>To add a new operating system, add the appropriate test to <A HREF="common.inc">common.inc</A>, and create the needed <os>.inc and <os>.<compiler>.inc files (see below).
 | 
			
		||||
    </UL>
 | 
			
		||||
<LI>The <os>.inc file makes OS-specific settings for a particular operating systems.
 | 
			
		||||
    <UL>
 | 
			
		||||
    <LI>For example, <A HREF="linux.inc">linux.inc</A> makes settings specific to Linux operating systems.
 | 
			
		||||
    <LI>This file performs OS-dependent tests to determine the specific platform and/or architecture, and sets other platform-dependent values.
 | 
			
		||||
    <LI>Add a new <os>.inc file for each new operating system added.
 | 
			
		||||
    </UL>
 | 
			
		||||
<LI>The <os>.<compiler>.inc file makes compiler-specific settings for a particular
 | 
			
		||||
    <os> / <compiler> combination.
 | 
			
		||||
    <UL>
 | 
			
		||||
    <LI>For example, <A HREF="linux.gcc.inc">linux.gcc.inc</A> makes specific settings for using GCC on Linux OS, and <A HREF="linux.icc.inc">linux.icc.inc</A> makes specific settings for using the Intel® C++ compiler on Linux OS.
 | 
			
		||||
    <LI>This file sets particular compiler, assembler and linker options required when using a particular <os> / <compiler> combination.
 | 
			
		||||
    <LI>Add a new <os>.<compiler>.inc file for each new <os> / <compiler> combination added.
 | 
			
		||||
    </UL>
 | 
			
		||||
</OL>
 | 
			
		||||
 | 
			
		||||
<HR>
 | 
			
		||||
<A HREF="../index.html">Up to parent directory</A>
 | 
			
		||||
<P></P>
 | 
			
		||||
Copyright © 2005-2020 Intel Corporation.  All Rights Reserved.
 | 
			
		||||
<P></P>
 | 
			
		||||
Intel, the Intel logo and Itanium are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or other countries.
 | 
			
		||||
<p></p>
 | 
			
		||||
* Other names and brands may be claimed as the property of others.
 | 
			
		||||
</BODY>
 | 
			
		||||
</HTML>
 | 
			
		||||
							
								
								
									
										15
									
								
								cs440-acg/ext/tbb/build/ios.clang.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								cs440-acg/ext/tbb/build/ios.clang.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
# 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/macos.clang.inc
 | 
			
		||||
							
								
								
									
										34
									
								
								cs440-acg/ext/tbb/build/ios.macos.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								cs440-acg/ext/tbb/build/ios.macos.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
			
		||||
# 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.
 | 
			
		||||
 | 
			
		||||
ifneq ($(arch),$(filter $(arch),ia32 intel64 armv7 armv7s arm64))
 | 
			
		||||
  $(error $(arch) is unknown architecture. Known arhitechtures are ia32 intel64 armv7 armv7s arm64)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# If target is ios but arch is ia32/intel64 then build for 32/64 simulator!
 | 
			
		||||
ifeq (,$(SDKROOT))
 | 
			
		||||
  ifeq ($(arch),$(filter $(arch),ia32 intel64))
 | 
			
		||||
    export SDKROOT:=$(shell xcodebuild -sdk -version | grep -o -E '/.*SDKs/iPhoneSimulator.*' 2>/dev/null)
 | 
			
		||||
  else
 | 
			
		||||
    export SDKROOT:=$(shell xcodebuild -sdk -version | grep -o -E '/.*SDKs/iPhoneOS.*' 2>/dev/null)
 | 
			
		||||
  endif
 | 
			
		||||
endif
 | 
			
		||||
ifeq (,$(SDKROOT))
 | 
			
		||||
  $(error iOS* SDK not found)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ios_version:=$(shell echo $(SDKROOT) | sed -e "s/.*[a-z,A-Z]\(.*\).sdk/\1/")
 | 
			
		||||
runtime:=cc$(clang_version)_ios$(ios_version)
 | 
			
		||||
 | 
			
		||||
IPHONEOS_DEPLOYMENT_TARGET ?= 8.0
 | 
			
		||||
							
								
								
									
										115
									
								
								cs440-acg/ext/tbb/build/linux.clang.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										115
									
								
								cs440-acg/ext/tbb/build/linux.clang.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,115 @@
 | 
			
		||||
# 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.
 | 
			
		||||
 | 
			
		||||
CPLUS ?= clang++
 | 
			
		||||
CONLY ?= clang
 | 
			
		||||
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 -Wextra
 | 
			
		||||
TEST_WARNING_KEY = -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 = -ldl
 | 
			
		||||
 | 
			
		||||
LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
 | 
			
		||||
LIBS += -lrt
 | 
			
		||||
LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
 | 
			
		||||
C_FLAGS = $(CPLUS_FLAGS)
 | 
			
		||||
 | 
			
		||||
ifeq ($(cfg), release)
 | 
			
		||||
        # -g is set intentionally in the release mode. It should not affect performance.
 | 
			
		||||
        CPLUS_FLAGS = -O2 -g
 | 
			
		||||
endif
 | 
			
		||||
ifeq ($(cfg), debug)
 | 
			
		||||
        CPLUS_FLAGS = -DTBB_USE_DEBUG -O0 -g
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
CPLUS_FLAGS += $(ITT_NOTIFY) -DUSE_PTHREAD -pthread
 | 
			
		||||
LIB_LINK_FLAGS += -pthread
 | 
			
		||||
 | 
			
		||||
ifneq (,$(stdlib))
 | 
			
		||||
    CPLUS_FLAGS    += -stdlib=$(stdlib)
 | 
			
		||||
    LIB_LINK_FLAGS += -stdlib=$(stdlib)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifneq (,$(gcc_version))
 | 
			
		||||
    # TODO: do not assume that GCC minor and patchlevel versions are always single-digit.
 | 
			
		||||
    CPLUS_FLAGS += -DTBB_USE_GLIBCXX_VERSION=$(subst .,0,$(gcc_version))
 | 
			
		||||
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.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
							
								
								
									
										156
									
								
								cs440-acg/ext/tbb/build/linux.gcc.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										156
									
								
								cs440-acg/ext/tbb/build/linux.gcc.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,156 @@
 | 
			
		||||
# 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.
 | 
			
		||||
 | 
			
		||||
CPLUS ?= g++
 | 
			
		||||
CONLY ?= gcc
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
WARNING_SUPPRESS = -Wno-parentheses
 | 
			
		||||
DYLIB_KEY = -shared
 | 
			
		||||
EXPORT_KEY = -Wl,--version-script,
 | 
			
		||||
LIBDL = -ldl
 | 
			
		||||
 | 
			
		||||
LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
 | 
			
		||||
LIBS += -lrt
 | 
			
		||||
LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
 | 
			
		||||
C_FLAGS = $(CPLUS_FLAGS)
 | 
			
		||||
 | 
			
		||||
# gcc 4.2 and higher support OpenMP
 | 
			
		||||
ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep  "^(4\.[2-9]|[5-9]|1[0-9])"))
 | 
			
		||||
    OPENMP_FLAG = -fopenmp
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# gcc 4.8 and later support RTM intrinsics, but require command line switch to enable them
 | 
			
		||||
ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep  "^(4\.[8-9]|[5-9]|1[0-9])"))
 | 
			
		||||
    RTM_KEY = -mrtm
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# gcc 4.0 and later have -Wextra that is used by some our customers.
 | 
			
		||||
ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep  "^([4-9]|1[0-9])"))
 | 
			
		||||
    WARNING_KEY += -Wextra
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# gcc 5.0 and later have -Wsuggest-override and -Wno-sized-deallocation options
 | 
			
		||||
ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep  "^([5-9]|1[0-9])"))
 | 
			
		||||
    # enable -Wsuggest-override via a pre-included header in order to limit to C++11 and above
 | 
			
		||||
    INCLUDE_TEST_HEADERS = -include $(tbb_root)/src/test/harness_preload.h
 | 
			
		||||
    WARNING_SUPPRESS += -Wno-sized-deallocation
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# gcc 6.0 and later have -flifetime-dse option that controls
 | 
			
		||||
# elimination of stores done outside the object lifetime
 | 
			
		||||
ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep  "^([6-9]|1[0-9])"))
 | 
			
		||||
    # keep pre-contruction stores for zero initialization
 | 
			
		||||
    DSE_KEY = -flifetime-dse=1
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq ($(cfg), release)
 | 
			
		||||
        # -g is set intentionally in the release mode. It should not affect performance.
 | 
			
		||||
        CPLUS_FLAGS = -O2 -g
 | 
			
		||||
endif
 | 
			
		||||
ifeq ($(cfg), debug)
 | 
			
		||||
        CPLUS_FLAGS = -DTBB_USE_DEBUG -O0 -g
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
CPLUS_FLAGS += $(ITT_NOTIFY) -DUSE_PTHREAD -pthread
 | 
			
		||||
LIB_LINK_FLAGS += -pthread
 | 
			
		||||
 | 
			
		||||
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))
 | 
			
		||||
    ITT_NOTIFY = -DDO_ITT_NOTIFY
 | 
			
		||||
    CPLUS_FLAGS += -m64 $(RTM_KEY)
 | 
			
		||||
    LIB_LINK_FLAGS += -m64
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq (ia32,$(arch))
 | 
			
		||||
    ITT_NOTIFY = -DDO_ITT_NOTIFY
 | 
			
		||||
    CPLUS_FLAGS += -m32 -march=pentium4 $(RTM_KEY)
 | 
			
		||||
    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 = $(firstword $(notdir $(shell which powerpc{64,32,}-bg{z..a}-linux-g++ 2>/dev/null)))
 | 
			
		||||
    CONLY = $(firstword $(notdir $(shell which powerpc{64,32,}-bg{z..a}-linux-gcc 2>/dev/null)))
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
# automatically generate "IT" instructions when compiling for Thumb ISA
 | 
			
		||||
ifeq (armv7,$(arch))
 | 
			
		||||
    CPLUS_FLAGS    += -Wa,-mimplicit-it=thumb
 | 
			
		||||
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
 | 
			
		||||
ifeq (ia64,$(arch))
 | 
			
		||||
    ASM_FLAGS += -xexplicit
 | 
			
		||||
    TBB_ASM.OBJ += atomic_support.o lock_byte.o log2.o pause.o ia64_misc.o
 | 
			
		||||
    MALLOC_ASM.OBJ += atomic_support.o lock_byte.o pause.o log2.o
 | 
			
		||||
endif
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# End of setting assembler data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# Setting tbbmalloc data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# End of setting tbbmalloc data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
							
								
								
									
										119
									
								
								cs440-acg/ext/tbb/build/linux.icc.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										119
									
								
								cs440-acg/ext/tbb/build/linux.icc.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,119 @@
 | 
			
		||||
# 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.
 | 
			
		||||
 | 
			
		||||
CPLUS ?= icpc
 | 
			
		||||
CONLY ?= icc
 | 
			
		||||
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 = -w1
 | 
			
		||||
DYLIB_KEY = -shared
 | 
			
		||||
EXPORT_KEY = -Wl,--version-script,
 | 
			
		||||
NOINTRINSIC_KEY = -fno-builtin
 | 
			
		||||
LIBDL = -ldl
 | 
			
		||||
ifneq (,$(shell icc -dumpversion | egrep "1[2-9]\."))
 | 
			
		||||
SDL_FLAGS = -fstack-protector -Wformat -Wformat-security
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ITT_NOTIFY = -DDO_ITT_NOTIFY
 | 
			
		||||
ifeq (release,$(cfg))
 | 
			
		||||
SDL_FLAGS += -D_FORTIFY_SOURCE=2
 | 
			
		||||
# -g is set intentionally in the release mode. It should not affect performance.
 | 
			
		||||
CPLUS_FLAGS = -O2 -g -qno-opt-report-embed
 | 
			
		||||
else
 | 
			
		||||
CPLUS_FLAGS = -O0 -g -DTBB_USE_DEBUG
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
LIB_LINK_FLAGS = -shared -static-intel -Wl,-soname=$(BUILDING_LIBRARY) -z relro -z now
 | 
			
		||||
LIBS += -lrt
 | 
			
		||||
LINK_FLAGS = -rdynamic
 | 
			
		||||
C_FLAGS = $(CPLUS_FLAGS)
 | 
			
		||||
 | 
			
		||||
CPLUS_FLAGS += $(ITT_NOTIFY) -DUSE_PTHREAD -pthread
 | 
			
		||||
LIB_LINK_FLAGS += -pthread
 | 
			
		||||
 | 
			
		||||
ifneq (,$(shell icc -dumpversion | egrep  "^1[6-9]\."))
 | 
			
		||||
OPENMP_FLAG = -qopenmp
 | 
			
		||||
else
 | 
			
		||||
OPENMP_FLAG = -openmp
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# ICC 12.0 and higher provide Intel(R) Cilk(TM) Plus
 | 
			
		||||
ifneq (,$(shell icc -dumpversion | egrep  "^1[2-9]\."))
 | 
			
		||||
    CILK_AVAILABLE = yes
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
TBB_ASM.OBJ=
 | 
			
		||||
MALLOC_ASM.OBJ=
 | 
			
		||||
 | 
			
		||||
ifeq (ia32,$(arch))
 | 
			
		||||
    CPLUS_FLAGS += -m32 -falign-stack=maintain-16-byte
 | 
			
		||||
    LIB_LINK_FLAGS += -m32
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq (ia64,$(arch))
 | 
			
		||||
    ITT_NOTIFY =
 | 
			
		||||
# Position-independent code (PIC) is a must on IA-64 architecture, even for regular (not shared) executables
 | 
			
		||||
# strict-ansi does not work with <signal.h> on RHEL 4 AS
 | 
			
		||||
    CPLUS_FLAGS += $(PIC_KEY) $(if $(findstring cc3.,$(runtime)),-ansi,-strict-ansi)
 | 
			
		||||
else
 | 
			
		||||
# For ICC 16 and older, in std=c++14 mode -strict-ansi does not work with GNU C++ library headers
 | 
			
		||||
# egrep returns 0 or 1, compare it in concatenation
 | 
			
		||||
    CPLUS_FLAGS += $(if $(findstring c++14_1,$(stdver)_$(shell icc -dumpversion| egrep -c "^1[1-6]\.")),-ansi,-strict-ansi)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifneq (,$(codecov))
 | 
			
		||||
# no tool support for code coverage, need profile data generation
 | 
			
		||||
    ITT_NOTIFY = -prof-gen=srcpos
 | 
			
		||||
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
 | 
			
		||||
ifeq (ia64,$(arch))
 | 
			
		||||
    ASM_FLAGS += -xexplicit
 | 
			
		||||
    TBB_ASM.OBJ += atomic_support.o lock_byte.o log2.o pause.o ia64_misc.o
 | 
			
		||||
    MALLOC_ASM.OBJ += atomic_support.o lock_byte.o pause.o log2.o
 | 
			
		||||
endif
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# End of setting assembler data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# Setting tbbmalloc data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# End of setting tbbmalloc data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										145
									
								
								cs440-acg/ext/tbb/build/linux.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										145
									
								
								cs440-acg/ext/tbb/build/linux.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,145 @@
 | 
			
		||||
# 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 ###############################################
 | 
			
		||||
 | 
			
		||||
ifeq (icc,$(compiler))
 | 
			
		||||
  export COMPILER_VERSION := ICC: $(shell icc -V </dev/null 2>&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
 | 
			
		||||
      ifneq (,$(findstring IA-64, $(COMPILER_VERSION)))
 | 
			
		||||
        export arch:=ia64
 | 
			
		||||
      endif
 | 
			
		||||
    endif
 | 
			
		||||
  endif
 | 
			
		||||
  ifeq (,$(arch))
 | 
			
		||||
    $(warning "Unknown Intel compiler")
 | 
			
		||||
  endif
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifndef arch
 | 
			
		||||
        uname_m:=$(shell uname -m)
 | 
			
		||||
        ifeq ($(uname_m),i686)
 | 
			
		||||
                export arch:=ia32
 | 
			
		||||
        endif
 | 
			
		||||
        ifeq ($(uname_m),ia64)
 | 
			
		||||
                export arch:=ia64
 | 
			
		||||
        endif
 | 
			
		||||
        ifeq ($(uname_m),x86_64)
 | 
			
		||||
                export arch:=intel64
 | 
			
		||||
        endif
 | 
			
		||||
        ifeq ($(uname_m),sparc64)
 | 
			
		||||
                export arch:=sparc
 | 
			
		||||
        endif
 | 
			
		||||
        ifeq ($(uname_m),armv7l)
 | 
			
		||||
                export arch:=armv7
 | 
			
		||||
        endif
 | 
			
		||||
        ifndef arch
 | 
			
		||||
                export arch:=$(uname_m)
 | 
			
		||||
        endif
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifndef runtime
 | 
			
		||||
        export gcc_version:=$(shell gcc -dumpfullversion -dumpversion)
 | 
			
		||||
        os_version:=$(shell uname -r)
 | 
			
		||||
        os_kernel_version:=$(shell uname -r | sed -e 's/-.*$$//')
 | 
			
		||||
        export os_glibc_version_full:=$(shell getconf GNU_LIBC_VERSION | grep glibc | sed -e 's/^glibc //')
 | 
			
		||||
        os_glibc_version:=$(shell echo "$(os_glibc_version_full)" | sed -e '2,$$d' -e 's/-.*$$//')
 | 
			
		||||
        export runtime:=cc$(gcc_version)_libc$(os_glibc_version)_kernel$(os_kernel_version)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
native_compiler := gcc
 | 
			
		||||
export compiler ?= gcc
 | 
			
		||||
debugger ?= gdb
 | 
			
		||||
 | 
			
		||||
CMD=sh -c
 | 
			
		||||
CWD=$(shell pwd)
 | 
			
		||||
CP=cp
 | 
			
		||||
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
 | 
			
		||||
MALLOC_DLL?=$(DLL)
 | 
			
		||||
LIBEXT = so
 | 
			
		||||
SONAME_SUFFIX =$(shell grep TBB_COMPATIBLE_INTERFACE_VERSION $(tbb_root)/include/tbb/tbb_stddef.h | egrep -o [0-9.]+)
 | 
			
		||||
 | 
			
		||||
ifeq ($(arch),ia64)
 | 
			
		||||
        def_prefix = lin64ipf
 | 
			
		||||
endif
 | 
			
		||||
ifneq (,$(findstring $(arch),sparc s390x))
 | 
			
		||||
        def_prefix = lin64
 | 
			
		||||
endif
 | 
			
		||||
ifeq ($(arch),armv7)
 | 
			
		||||
        def_prefix = lin32
 | 
			
		||||
endif
 | 
			
		||||
ifeq (,$(def_prefix))
 | 
			
		||||
    ifeq (64,$(findstring 64,$(arch)))
 | 
			
		||||
            def_prefix = lin64
 | 
			
		||||
    else
 | 
			
		||||
            def_prefix = lin32
 | 
			
		||||
    endif
 | 
			
		||||
endif
 | 
			
		||||
TBB.LST = $(tbb_root)/src/tbb/$(def_prefix)-tbb-export.lst
 | 
			
		||||
TBB.DEF = $(TBB.LST:.lst=.def)
 | 
			
		||||
 | 
			
		||||
TBB.DLL = $(TBB_NO_VERSION.DLL).$(SONAME_SUFFIX)
 | 
			
		||||
TBB.LIB = $(TBB.DLL)
 | 
			
		||||
TBB_NO_VERSION.DLL=libtbb$(CPF_SUFFIX)$(DEBUG_SUFFIX).$(DLL)
 | 
			
		||||
LINK_TBB.LIB = $(TBB_NO_VERSION.DLL)
 | 
			
		||||
 | 
			
		||||
TBBBIND_NO_VERSION.DLL = libtbbbind$(DEBUG_SUFFIX).$(DLL)
 | 
			
		||||
TBBBIND.DEF = $(tbb_root)/src/tbb/$(def_prefix)-tbbbind-export.def
 | 
			
		||||
TBBBIND.DLL = $(TBBBIND_NO_VERSION.DLL).$(SONAME_SUFFIX)
 | 
			
		||||
TBBBIND.LIB = $(TBBBIND_NO_VERSION.DLL)
 | 
			
		||||
LINK_TBBBIND.LIB = $(TBBBIND.LIB)
 | 
			
		||||
HWLOC.LIB = -lhwloc
 | 
			
		||||
 | 
			
		||||
MALLOC_NO_VERSION.DLL = libtbbmalloc$(DEBUG_SUFFIX).$(MALLOC_DLL)
 | 
			
		||||
MALLOC.DEF = $(MALLOC_ROOT)/$(def_prefix)-tbbmalloc-export.def
 | 
			
		||||
MALLOC.DLL = $(MALLOC_NO_VERSION.DLL).$(SONAME_SUFFIX)
 | 
			
		||||
MALLOC.LIB = $(MALLOC_NO_VERSION.DLL)
 | 
			
		||||
LINK_MALLOC.LIB = $(MALLOC_NO_VERSION.DLL)
 | 
			
		||||
 | 
			
		||||
MALLOCPROXY_NO_VERSION.DLL = libtbbmalloc_proxy$(DEBUG_SUFFIX).$(DLL)
 | 
			
		||||
MALLOCPROXY.DEF = $(MALLOC_ROOT)/$(def_prefix)-proxy-export.def
 | 
			
		||||
MALLOCPROXY.DLL = $(MALLOCPROXY_NO_VERSION.DLL).$(SONAME_SUFFIX)
 | 
			
		||||
MALLOCPROXY.LIB = $(MALLOCPROXY_NO_VERSION.DLL)
 | 
			
		||||
LINK_MALLOCPROXY.LIB = $(MALLOCPROXY.LIB)
 | 
			
		||||
 | 
			
		||||
RML_NO_VERSION.DLL = libirml$(DEBUG_SUFFIX).$(DLL)
 | 
			
		||||
RML.DEF = $(RML_SERVER_ROOT)/lin-rml-export.def
 | 
			
		||||
RML.DLL = $(RML_NO_VERSION.DLL).1
 | 
			
		||||
RML.LIB = $(RML_NO_VERSION.DLL)
 | 
			
		||||
 | 
			
		||||
TEST_LAUNCHER=sh $(tbb_root)/build/test_launcher.sh $(largs)
 | 
			
		||||
 | 
			
		||||
OPENCL.LIB = -lOpenCL
 | 
			
		||||
							
								
								
									
										89
									
								
								cs440-acg/ext/tbb/build/linux.pathcc.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								cs440-acg/ext/tbb/build/linux.pathcc.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,89 @@
 | 
			
		||||
# 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.
 | 
			
		||||
 | 
			
		||||
CPLUS ?= pathCC
 | 
			
		||||
CONLY ?= pathcc
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
 | 
			
		||||
LIBS += -lstl -lpthread -lrt
 | 
			
		||||
LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
 | 
			
		||||
C_FLAGS = $(CPLUS_FLAGS)
 | 
			
		||||
 | 
			
		||||
OPENMP_FLAG = -openmp
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# 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.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
							
								
								
									
										100
									
								
								cs440-acg/ext/tbb/build/linux.xl.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								cs440-acg/ext/tbb/build/linux.xl.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,100 @@
 | 
			
		||||
# 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 ###############################################
 | 
			
		||||
 | 
			
		||||
CPLUS ?= xlc++_r
 | 
			
		||||
CONLY ?= xlc_r
 | 
			
		||||
COMPILE_ONLY = -c
 | 
			
		||||
PREPROC_ONLY = -E -qsourcetype=c
 | 
			
		||||
INCLUDE_KEY = -I
 | 
			
		||||
DEFINE_KEY = -D
 | 
			
		||||
OUTPUT_KEY = -o #
 | 
			
		||||
OUTPUTOBJ_KEY = -o #
 | 
			
		||||
PIC_KEY = -qpic
 | 
			
		||||
WARNING_AS_ERROR_KEY = -qhalt=w
 | 
			
		||||
WARNING_KEY =
 | 
			
		||||
TEST_WARNING_KEY =
 | 
			
		||||
 | 
			
		||||
WARNING_SUPPRESS =
 | 
			
		||||
DYLIB_KEY = -qmkshrobj
 | 
			
		||||
EXPORT_KEY = -Wl,--version-script,
 | 
			
		||||
LIBDL = -ldl
 | 
			
		||||
 | 
			
		||||
LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
 | 
			
		||||
LIBS = -lpthread -lrt
 | 
			
		||||
C_FLAGS = $(CPLUS_FLAGS)
 | 
			
		||||
 | 
			
		||||
ifeq ($(cfg), release)
 | 
			
		||||
        CPLUS_FLAGS = $(ITT_NOTIFY) -O2 -DUSE_PTHREAD
 | 
			
		||||
endif
 | 
			
		||||
ifeq ($(cfg), debug)
 | 
			
		||||
        CPLUS_FLAGS = -DTBB_USE_DEBUG $(ITT_NOTIFY) -g -O0 -DUSE_PTHREAD
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# Adding directly to CPLUS_FLAGS instead of to WARNING_SUPPRESS because otherwise it would not be used in several tests (why not?).
 | 
			
		||||
# Suppress warnings like:
 | 
			
		||||
# - "1500-029: (W) WARNING: subprogram [...] could not be inlined into [...]."
 | 
			
		||||
# - "1501-201: (W) Maximum number of common component diagnostics, 10  has been exceeded."
 | 
			
		||||
#     see http://www-01.ibm.com/support/docview.wss?uid=swg1LI72843
 | 
			
		||||
#     it seems that the internal compiler error that would ensue has now been avoided, making the condition harmless
 | 
			
		||||
# - "1540-0198 (W) The omitted keyword "private" is assumed for base class "no_copy"."
 | 
			
		||||
# - "1540-0822 (W) The name "__FUNCTION__" must not be defined as a macro."
 | 
			
		||||
CPLUS_FLAGS += -qsuppress=1500-029:1501-201:1540-0198:1540-0822
 | 
			
		||||
 | 
			
		||||
ASM=
 | 
			
		||||
ASM_FLAGS=
 | 
			
		||||
 | 
			
		||||
TBB_ASM.OBJ=
 | 
			
		||||
 | 
			
		||||
ifeq (intel64,$(arch))
 | 
			
		||||
    ITT_NOTIFY = -DDO_ITT_NOTIFY
 | 
			
		||||
    CPLUS_FLAGS += -q64
 | 
			
		||||
    LIB_LINK_FLAGS += -q64
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# TODO: equivalent for -march=pentium4 in CPLUS_FLAGS
 | 
			
		||||
ifeq (ia32,$(arch))
 | 
			
		||||
    ITT_NOTIFY = -DDO_ITT_NOTIFY
 | 
			
		||||
    CPLUS_FLAGS += -q32 -qarch=pentium4
 | 
			
		||||
    LIB_LINK_FLAGS += -q32
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq (ppc64,$(arch))
 | 
			
		||||
    CPLUS_FLAGS += -q64
 | 
			
		||||
    LIB_LINK_FLAGS += -q64
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq (ppc32,$(arch))
 | 
			
		||||
    CPLUS_FLAGS += -q32
 | 
			
		||||
    LIB_LINK_FLAGS += -q32
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq (bg,$(arch))
 | 
			
		||||
    CPLUS = bgxlC_r
 | 
			
		||||
    CONLY = bgxlc_r
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# Setting tbbmalloc data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
# Suppress innumerable warnings like "1540-1088 (W) The exception specification is being ignored."
 | 
			
		||||
# Suppress             warnings like "1540-1090 (I) The destructor of "lock" might not be called."
 | 
			
		||||
# TODO: aren't these warnings an indication that -qnoeh might not be appropriate?
 | 
			
		||||
M_CPLUS_FLAGS = $(CPLUS_FLAGS) -qnortti -qnoeh -qsuppress=1540-1088:1540-1090
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# End of setting tbbmalloc data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
							
								
								
									
										136
									
								
								cs440-acg/ext/tbb/build/macos.clang.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										136
									
								
								cs440-acg/ext/tbb/build/macos.clang.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,136 @@
 | 
			
		||||
# 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.
 | 
			
		||||
 | 
			
		||||
CPLUS ?= clang++
 | 
			
		||||
CONLY ?= clang
 | 
			
		||||
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-non-virtual-dtor -Wno-dangling-else
 | 
			
		||||
DYLIB_KEY = -dynamiclib
 | 
			
		||||
EXPORT_KEY = -Wl,-exported_symbols_list,
 | 
			
		||||
LIBDL = -ldl
 | 
			
		||||
 | 
			
		||||
LIBS = -lpthread
 | 
			
		||||
LINK_FLAGS =
 | 
			
		||||
LIB_LINK_FLAGS = -dynamiclib -install_name @rpath/$(BUILDING_LIBRARY)
 | 
			
		||||
C_FLAGS = $(CPLUS_FLAGS)
 | 
			
		||||
 | 
			
		||||
ifeq ($(cfg), release)
 | 
			
		||||
    CPLUS_FLAGS = -g -O2
 | 
			
		||||
else
 | 
			
		||||
    CPLUS_FLAGS = -g -O0 -DTBB_USE_DEBUG
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
CPLUS_FLAGS += -DUSE_PTHREAD $(ITT_NOTIFY)
 | 
			
		||||
 | 
			
		||||
ifeq (1,$(tbb_cpf))
 | 
			
		||||
# For correct ucontext.h structures layout
 | 
			
		||||
CPLUS_FLAGS += -D_XOPEN_SOURCE
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# For Clang, we add the option to support RTM intrinsics *iff* xtest is found in <immintrin.h>
 | 
			
		||||
ifneq (,$(shell grep xtest `echo "\#include<immintrin.h>" | $(CONLY) -E -M - 2>&1 | grep immintrin.h` 2>/dev/null))
 | 
			
		||||
    RTM_KEY = -mrtm
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifneq (,$(stdlib))
 | 
			
		||||
    CPLUS_FLAGS    += -stdlib=$(stdlib)
 | 
			
		||||
    LIB_LINK_FLAGS += -stdlib=$(stdlib)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq (intel64,$(arch))
 | 
			
		||||
    ITT_NOTIFY = -DDO_ITT_NOTIFY
 | 
			
		||||
    CPLUS_FLAGS += -m64 $(RTM_KEY)
 | 
			
		||||
    LINK_FLAGS += -m64
 | 
			
		||||
    LIB_LINK_FLAGS += -m64
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq (ia32,$(arch))
 | 
			
		||||
    ITT_NOTIFY = -DDO_ITT_NOTIFY
 | 
			
		||||
    CPLUS_FLAGS += -m32 $(RTM_KEY)
 | 
			
		||||
    LINK_FLAGS += -m32
 | 
			
		||||
    LIB_LINK_FLAGS += -m32
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq (ppc64,$(arch))
 | 
			
		||||
    CPLUS_FLAGS += -arch ppc64
 | 
			
		||||
    LINK_FLAGS += -arch ppc64
 | 
			
		||||
    LIB_LINK_FLAGS += -arch ppc64
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq (ppc32,$(arch))
 | 
			
		||||
    CPLUS_FLAGS += -arch ppc
 | 
			
		||||
    LINK_FLAGS += -arch ppc
 | 
			
		||||
    LIB_LINK_FLAGS += -arch ppc
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq ($(arch),$(filter $(arch),armv7 armv7s arm64))
 | 
			
		||||
    CPLUS_FLAGS += -arch $(arch)
 | 
			
		||||
    LINK_FLAGS += -arch $(arch)
 | 
			
		||||
    LIB_LINK_FLAGS += -arch $(arch)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifdef SDKROOT
 | 
			
		||||
    CPLUS_FLAGS += -isysroot $(SDKROOT)
 | 
			
		||||
    LINK_FLAGS += -L$(SDKROOT)/usr/lib/system -L$(SDKROOT)/usr/lib/
 | 
			
		||||
    LIB_LINK_FLAGS += -L$(SDKROOT)/usr/lib/system -L$(SDKROOT)/usr/lib/
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq (ios,$(target))
 | 
			
		||||
    CPLUS_FLAGS += -miphoneos-version-min=$(IPHONEOS_DEPLOYMENT_TARGET)
 | 
			
		||||
    LINK_FLAGS += -miphoneos-version-min=$(IPHONEOS_DEPLOYMENT_TARGET)
 | 
			
		||||
    LIB_LINK_FLAGS += -miphoneos-version-min=$(IPHONEOS_DEPLOYMENT_TARGET)
 | 
			
		||||
else
 | 
			
		||||
    CPLUS_FLAGS += -mmacosx-version-min=$(MACOSX_DEPLOYMENT_TARGET)
 | 
			
		||||
    LINK_FLAGS += -mmacosx-version-min=$(MACOSX_DEPLOYMENT_TARGET)
 | 
			
		||||
    LIB_LINK_FLAGS += -mmacosx-version-min=$(MACOSX_DEPLOYMENT_TARGET)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# Setting assembler data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
ASM = as
 | 
			
		||||
ifeq (intel64,$(arch))
 | 
			
		||||
    ASM_FLAGS += -arch x86_64
 | 
			
		||||
endif
 | 
			
		||||
ifeq (ia32,$(arch))
 | 
			
		||||
    ASM_FLAGS += -arch i386
 | 
			
		||||
endif
 | 
			
		||||
ifeq ($(cfg), debug)
 | 
			
		||||
    ASM_FLAGS += -g
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# End of setting assembler data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# Setting tbbmalloc data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# End of setting tbbmalloc data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										128
									
								
								cs440-acg/ext/tbb/build/macos.gcc.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										128
									
								
								cs440-acg/ext/tbb/build/macos.gcc.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,128 @@
 | 
			
		||||
# 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.
 | 
			
		||||
 | 
			
		||||
CPLUS ?= g++
 | 
			
		||||
CONLY ?= gcc
 | 
			
		||||
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-non-virtual-dtor
 | 
			
		||||
DYLIB_KEY = -dynamiclib
 | 
			
		||||
EXPORT_KEY = -Wl,-exported_symbols_list,
 | 
			
		||||
LIBDL = -ldl
 | 
			
		||||
 | 
			
		||||
LIBS = -lpthread
 | 
			
		||||
LINK_FLAGS =
 | 
			
		||||
LIB_LINK_FLAGS = -dynamiclib -install_name @rpath/$(BUILDING_LIBRARY)
 | 
			
		||||
C_FLAGS = $(CPLUS_FLAGS)
 | 
			
		||||
 | 
			
		||||
# gcc 4.8 and later support RTM intrinsics, but require command line switch to enable them
 | 
			
		||||
ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep  "^(4\.[8-9]|[5-9]|1[0-9])"))
 | 
			
		||||
    RTM_KEY = -mrtm
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# gcc 5.0 and later have -Wsuggest-override option
 | 
			
		||||
# enable it via a pre-included header in order to limit to C++11 and above
 | 
			
		||||
ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep  "^([5-9]|1[0-9])"))
 | 
			
		||||
    INCLUDE_TEST_HEADERS = -include $(tbb_root)/src/test/harness_preload.h
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# gcc 6.0 and later have -flifetime-dse option that controls
 | 
			
		||||
# elimination of stores done outside the object lifetime
 | 
			
		||||
ifneq (,$(shell $(CONLY) -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
 | 
			
		||||
else
 | 
			
		||||
    CPLUS_FLAGS = -g -O0 -DTBB_USE_DEBUG
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
CPLUS_FLAGS += -DUSE_PTHREAD $(ITT_NOTIFY)
 | 
			
		||||
 | 
			
		||||
ifeq (intel64,$(arch))
 | 
			
		||||
    ITT_NOTIFY = -DDO_ITT_NOTIFY
 | 
			
		||||
    CPLUS_FLAGS += -m64
 | 
			
		||||
    LINK_FLAGS += -m64
 | 
			
		||||
    LIB_LINK_FLAGS += -m64
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq (ia32,$(arch))
 | 
			
		||||
    ITT_NOTIFY = -DDO_ITT_NOTIFY
 | 
			
		||||
    CPLUS_FLAGS += -m32
 | 
			
		||||
    LINK_FLAGS += -m32
 | 
			
		||||
    LIB_LINK_FLAGS += -m32
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq (ppc64,$(arch))
 | 
			
		||||
    CPLUS_FLAGS += -arch ppc64
 | 
			
		||||
    LINK_FLAGS += -arch ppc64
 | 
			
		||||
    LIB_LINK_FLAGS += -arch ppc64
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq (ppc32,$(arch))
 | 
			
		||||
    CPLUS_FLAGS += -arch ppc
 | 
			
		||||
    LINK_FLAGS += -arch ppc
 | 
			
		||||
    LIB_LINK_FLAGS += -arch ppc
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq (armv7,$(arch))
 | 
			
		||||
    CPLUS_FLAGS += -arch armv7
 | 
			
		||||
    LINK_FLAGS += -arch armv7
 | 
			
		||||
    LIB_LINK_FLAGS += -arch armv7
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifdef SDKROOT
 | 
			
		||||
    CPLUS_FLAGS += -isysroot $(SDKROOT)
 | 
			
		||||
    LIB_LINK_FLAGS += -L$(SDKROOT)/usr/lib/system -L$(SDKROOT)/usr/lib/
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# Setting assembler data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
ASM = as
 | 
			
		||||
ifeq (intel64,$(arch))
 | 
			
		||||
    ASM_FLAGS += -arch x86_64
 | 
			
		||||
endif
 | 
			
		||||
ifeq (ia32,$(arch))
 | 
			
		||||
    ASM_FLAGS += -arch i386
 | 
			
		||||
endif
 | 
			
		||||
ifeq ($(cfg), debug)
 | 
			
		||||
    ASM_FLAGS += -g
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# End of setting assembler data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# Setting tbbmalloc data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# End of setting tbbmalloc data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										107
									
								
								cs440-acg/ext/tbb/build/macos.icc.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										107
									
								
								cs440-acg/ext/tbb/build/macos.icc.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,107 @@
 | 
			
		||||
# 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.
 | 
			
		||||
 | 
			
		||||
CPLUS ?= icpc
 | 
			
		||||
CONLY ?= icc
 | 
			
		||||
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 = -w1
 | 
			
		||||
ifneq (,$(shell icc -dumpversion | egrep "1[2-9]\."))
 | 
			
		||||
SDL_FLAGS = -fstack-protector -Wformat -Wformat-security
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
DYLIB_KEY = -dynamiclib
 | 
			
		||||
EXPORT_KEY = -Wl,-exported_symbols_list,
 | 
			
		||||
LIBDL = -ldl
 | 
			
		||||
 | 
			
		||||
LIBS = -lpthread
 | 
			
		||||
LINK_FLAGS =
 | 
			
		||||
LIB_LINK_FLAGS = -dynamiclib -static-intel -install_name @rpath/$(BUILDING_LIBRARY)
 | 
			
		||||
C_FLAGS = $(CPLUS_FLAGS)
 | 
			
		||||
 | 
			
		||||
ifneq (,$(shell icc -dumpversion | egrep  "^1[6-9]\."))
 | 
			
		||||
OPENMP_FLAG = -qopenmp
 | 
			
		||||
else
 | 
			
		||||
OPENMP_FLAG = -openmp
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# ICC 12.0 and higher provide Intel(R) Cilk(TM) Plus
 | 
			
		||||
ifneq (,$(shell icc -dumpversion | egrep  "^1[2-9]\."))
 | 
			
		||||
    CILK_AVAILABLE = yes
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq ($(cfg), release)
 | 
			
		||||
    SDL_FLAGS += -D_FORTIFY_SOURCE=2
 | 
			
		||||
    CPLUS_FLAGS = -g -O2 -fno-omit-frame-pointer -qno-opt-report-embed
 | 
			
		||||
else
 | 
			
		||||
    CPLUS_FLAGS = -g -O0 -DTBB_USE_DEBUG
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ITT_NOTIFY = -DDO_ITT_NOTIFY
 | 
			
		||||
CPLUS_FLAGS += -DUSE_PTHREAD $(ITT_NOTIFY)
 | 
			
		||||
 | 
			
		||||
ifeq (1,$(tbb_cpf))
 | 
			
		||||
# For correct ucontext.h structures layout
 | 
			
		||||
CPLUS_FLAGS += -D_XOPEN_SOURCE
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifneq (,$(codecov))
 | 
			
		||||
    CPLUS_FLAGS += -prof-gen=srcpos
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# ICC 14.0 and higher support usage of libc++, clang standard library
 | 
			
		||||
ifneq (,$(shell icc -dumpversion | egrep  "^1[4-9]\."))
 | 
			
		||||
ifneq (,$(stdlib))
 | 
			
		||||
    CPLUS_FLAGS    += -stdlib=$(stdlib) -mmacosx-version-min=$(MACOSX_DEPLOYMENT_TARGET)
 | 
			
		||||
    LIB_LINK_FLAGS += -stdlib=$(stdlib) -mmacosx-version-min=$(MACOSX_DEPLOYMENT_TARGET)
 | 
			
		||||
endif
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# Setting assembler data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
ASM = as
 | 
			
		||||
ifeq (intel64,$(arch))
 | 
			
		||||
    ASM_FLAGS += -arch x86_64
 | 
			
		||||
endif
 | 
			
		||||
ifeq (ia32,$(arch))
 | 
			
		||||
    CPLUS_FLAGS += -m32
 | 
			
		||||
    LINK_FLAGS += -m32
 | 
			
		||||
    LIB_LINK_FLAGS += -m32
 | 
			
		||||
    ASM_FLAGS += -arch i386
 | 
			
		||||
endif
 | 
			
		||||
ifeq ($(cfg), debug)
 | 
			
		||||
    ASM_FLAGS += -g
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# End of setting assembler data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# Setting tbbmalloc data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# End of setting tbbmalloc data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
							
								
								
									
										105
									
								
								cs440-acg/ext/tbb/build/macos.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										105
									
								
								cs440-acg/ext/tbb/build/macos.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,105 @@
 | 
			
		||||
# 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 ###############################################
 | 
			
		||||
 | 
			
		||||
ifeq (icc,$(compiler))
 | 
			
		||||
  export COMPILER_VERSION := ICC: $(shell icc -V </dev/null 2>&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
 | 
			
		||||
    endif
 | 
			
		||||
  endif
 | 
			
		||||
  ifeq (,$(arch))
 | 
			
		||||
    $(warning "Unknown Intel compiler")
 | 
			
		||||
  endif
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifndef arch
 | 
			
		||||
 ifeq ($(shell /usr/sbin/sysctl -n hw.machine),Power Macintosh)
 | 
			
		||||
   ifeq ($(shell /usr/sbin/sysctl -n hw.optional.64bitops),1)
 | 
			
		||||
     export arch:=ppc64
 | 
			
		||||
   else
 | 
			
		||||
     export arch:=ppc32
 | 
			
		||||
   endif
 | 
			
		||||
 else
 | 
			
		||||
   ifeq ($(shell /usr/sbin/sysctl -n hw.optional.x86_64 2>/dev/null),1)
 | 
			
		||||
     export arch:=intel64
 | 
			
		||||
   else
 | 
			
		||||
     export arch:=ia32
 | 
			
		||||
   endif
 | 
			
		||||
 endif
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifndef runtime
 | 
			
		||||
  clang_version:=$(shell clang --version | sed -n "1s/.*version \(.*[0-9]\) .*/\1/p")
 | 
			
		||||
  ifndef os_version
 | 
			
		||||
    os_version:=$(shell /usr/bin/sw_vers -productVersion)
 | 
			
		||||
  endif
 | 
			
		||||
  export runtime:=cc$(clang_version)_os$(os_version)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
native_compiler := clang
 | 
			
		||||
export compiler ?= clang
 | 
			
		||||
debugger ?= lldb
 | 
			
		||||
 | 
			
		||||
export stdlib ?= libc++
 | 
			
		||||
 | 
			
		||||
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_macos.sh $(VERSION_FLAGS) >version_string.ver
 | 
			
		||||
MAKE_TBBVARS=sh $(tbb_root)/build/generate_tbbvars.sh DY
 | 
			
		||||
 | 
			
		||||
ifdef DYLD_LIBRARY_PATH
 | 
			
		||||
        export DYLD_LIBRARY_PATH := .:$(DYLD_LIBRARY_PATH)
 | 
			
		||||
else
 | 
			
		||||
        export DYLD_LIBRARY_PATH := .
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
####### Build settings ########################################################
 | 
			
		||||
 | 
			
		||||
OBJ=o
 | 
			
		||||
DLL=dylib
 | 
			
		||||
MALLOC_DLL?=$(DLL)
 | 
			
		||||
LIBEXT=dylib
 | 
			
		||||
 | 
			
		||||
def_prefix = $(if $(findstring 64,$(arch)),mac64,mac32)
 | 
			
		||||
 | 
			
		||||
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)
 | 
			
		||||
LINK_TBB.LIB = $(TBB.LIB)
 | 
			
		||||
 | 
			
		||||
MALLOC.DEF = $(MALLOC_ROOT)/$(def_prefix)-tbbmalloc-export.def
 | 
			
		||||
MALLOC.DLL = libtbbmalloc$(DEBUG_SUFFIX).$(MALLOC_DLL)
 | 
			
		||||
MALLOC.LIB = $(MALLOC.DLL)
 | 
			
		||||
LINK_MALLOC.LIB = $(MALLOC.LIB)
 | 
			
		||||
 | 
			
		||||
MALLOCPROXY.DLL = libtbbmalloc_proxy$(DEBUG_SUFFIX).$(MALLOC_DLL)
 | 
			
		||||
MALLOCPROXY.LIB = $(MALLOCPROXY.DLL)
 | 
			
		||||
LINK_MALLOCPROXY.LIB = $(MALLOCPROXY.LIB)
 | 
			
		||||
 | 
			
		||||
TEST_LAUNCHER=sh $(tbb_root)/build/test_launcher.sh $(largs)
 | 
			
		||||
 | 
			
		||||
OPENCL.LIB = -framework OpenCL
 | 
			
		||||
 | 
			
		||||
MACOSX_DEPLOYMENT_TARGET ?= 10.11
 | 
			
		||||
							
								
								
									
										75
									
								
								cs440-acg/ext/tbb/build/mic.icc.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								cs440-acg/ext/tbb/build/mic.icc.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,75 @@
 | 
			
		||||
# 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.
 | 
			
		||||
 | 
			
		||||
CPLUS ?= icpc
 | 
			
		||||
CONLY ?= icc
 | 
			
		||||
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 = -w1
 | 
			
		||||
DYLIB_KEY = -shared -Wl,-soname=$@
 | 
			
		||||
EXPORT_KEY = -Wl,--version-script,
 | 
			
		||||
NOINTRINSIC_KEY = -fno-builtin
 | 
			
		||||
LIBDL = -ldl
 | 
			
		||||
SDL_FLAGS = -fstack-protector -Wformat -Wformat-security
 | 
			
		||||
 | 
			
		||||
ifeq (release,$(cfg))
 | 
			
		||||
    SDL_FLAGS += -D_FORTIFY_SOURCE=2
 | 
			
		||||
    CPLUS_FLAGS = -O2 -g -DUSE_PTHREAD
 | 
			
		||||
else
 | 
			
		||||
    CPLUS_FLAGS = -O0 -g -DUSE_PTHREAD -DTBB_USE_DEBUG
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifneq (,$(codecov))
 | 
			
		||||
    CPLUS_FLAGS += -prof-gen=srcpos
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifneq (,$(shell icc -dumpversion | egrep  "^1[6-9]\."))
 | 
			
		||||
OPENMP_FLAG = -qopenmp
 | 
			
		||||
else
 | 
			
		||||
OPENMP_FLAG = -openmp
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
LIB_LINK_FLAGS = -shared -static-intel -Wl,-soname=$(BUILDING_LIBRARY) -z relro -z now
 | 
			
		||||
LIBS += -lpthread -lrt
 | 
			
		||||
C_FLAGS = $(CPLUS_FLAGS)
 | 
			
		||||
CILK_AVAILABLE = yes
 | 
			
		||||
 | 
			
		||||
TBB_ASM.OBJ=
 | 
			
		||||
MALLOC_ASM.OBJ=
 | 
			
		||||
 | 
			
		||||
CPLUS_FLAGS += -DHARNESS_INCOMPLETE_SOURCES=1 -D__TBB_MIC_NATIVE -DTBB_USE_EXCEPTIONS=0 -qopt-streaming-stores never
 | 
			
		||||
CPLUS += -mmic
 | 
			
		||||
CONLY += -mmic
 | 
			
		||||
LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
 | 
			
		||||
# Tell the icc to not link against libcilk*. Otherwise icc tries to link and emits a warning message.
 | 
			
		||||
LIB_LINK_FLAGS += -no-intel-extensions
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# Setting tbbmalloc data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# End of setting tbbmalloc data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										39
									
								
								cs440-acg/ext/tbb/build/mic.linux.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								cs440-acg/ext/tbb/build/mic.linux.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
			
		||||
# 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_os),mic)
 | 
			
		||||
  $(error MIC supports only cross-compilation.  Specify "target=mic" instead.)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifneq ($(BUILDING_PHASE),1)
 | 
			
		||||
  # The same build prefix should be used in offload.inc
 | 
			
		||||
  ifeq (,$(tbb_build_prefix))
 | 
			
		||||
    tbb_build_prefix=mic_icc$(CPF_SUFFIX)
 | 
			
		||||
  endif
 | 
			
		||||
  # For examples
 | 
			
		||||
  mic_tbb_build_prefix=$(tbb_build_prefix)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
MAKE_VERSIONS=sh $(tbb_root)/build/version_info_linux.sh $(VERSION_FLAGS) >version_string.ver
 | 
			
		||||
MAKE_TBBVARS=sh $(tbb_root)/build/generate_tbbvars.sh MIC_ MIC_
 | 
			
		||||
def_prefix=lin64
 | 
			
		||||
 | 
			
		||||
TEST_LAUNCHER=
 | 
			
		||||
run_cmd ?= bash $(tbb_root)/build/mic.linux.launcher.sh $(largs)
 | 
			
		||||
 | 
			
		||||
# detects whether examples are being built.
 | 
			
		||||
ifeq ($(BUILDING_PHASE),0)
 | 
			
		||||
 export UI = con
 | 
			
		||||
 export x64 = 64
 | 
			
		||||
endif # examples
 | 
			
		||||
							
								
								
									
										157
									
								
								cs440-acg/ext/tbb/build/mic.linux.launcher.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										157
									
								
								cs440-acg/ext/tbb/build/mic.linux.launcher.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,157 @@
 | 
			
		||||
#!/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.
 | 
			
		||||
 | 
			
		||||
# Usage:
 | 
			
		||||
# mic.linux.launcher.sh [-v] [-q] [-s] [-r <repeats>] [-u] [-l <library>] <executable> <arg1> <arg2> <argN>
 | 
			
		||||
#         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 <repeats> specifies number of times to repeat execution
 | 
			
		||||
#         where: -u limits stack size
 | 
			
		||||
#         where: -l <library> 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.
 | 
			
		||||
# Note: Do not remove the redirections to '/dev/null' in the script, otherwise the nightly test system will fail.
 | 
			
		||||
#
 | 
			
		||||
trap 'echo Error at line $LINENO while executing "$BASH_COMMAND"' ERR #
 | 
			
		||||
trap 'echo -e "\n*** Interrupted ***" && exit 1' SIGINT SIGQUIT #
 | 
			
		||||
# Process the optional arguments if present
 | 
			
		||||
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 1 $OPTARG); do echo \$i of $OPTARG:; \$*; done; };" #
 | 
			
		||||
         run_prefix="repeated $run_prefix" ;; #
 | 
			
		||||
    l )  # Additional library
 | 
			
		||||
         ldd_list+="$OPTARG " #
 | 
			
		||||
         run_prefix+=" LD_PRELOAD=$OPTARG" ;; #
 | 
			
		||||
    u )  # Set stack limit
 | 
			
		||||
         run_prefix="ulimit -s 10240; $run_prefix" ;; # 
 | 
			
		||||
    q )  # Quiet mode, removes 'done' but prepends any other output by test name
 | 
			
		||||
         SUPPRESS='>/dev/null' #
 | 
			
		||||
         verbose=1 ;; # TODO: implement a better quiet mode
 | 
			
		||||
    v )  # Verbose mode
 | 
			
		||||
         verbose=1 ;; #
 | 
			
		||||
esac done #
 | 
			
		||||
shift `expr $OPTIND - 1` #
 | 
			
		||||
[ $verbose ] || SUPPRESS='>/dev/null' #
 | 
			
		||||
#
 | 
			
		||||
# Collect the executable name
 | 
			
		||||
fexename="$1" #
 | 
			
		||||
exename=`basename $1` #
 | 
			
		||||
shift #
 | 
			
		||||
#
 | 
			
		||||
: ${MICDEV:=mic0} #
 | 
			
		||||
RSH="sudo ssh $MICDEV" #
 | 
			
		||||
RCP="sudo scp" #
 | 
			
		||||
currentdir=$PWD #
 | 
			
		||||
#
 | 
			
		||||
# Prepare the target directory on the device
 | 
			
		||||
targetdir="`$RSH mktemp -d /tmp/tbbtestXXXXXX 2>/dev/null`" #
 | 
			
		||||
# Prepare the temporary directory on the host
 | 
			
		||||
hostdir="`mktemp -d /tmp/tbbtestXXXXXX 2>/dev/null`" #
 | 
			
		||||
#
 | 
			
		||||
function copy_files { #
 | 
			
		||||
    [ $verbose ] && echo Going to copy $* #
 | 
			
		||||
    eval "cp $* $hostdir/ $SUPPRESS 2>/dev/null || exit \$?" #
 | 
			
		||||
    eval "$RCP $hostdir/* $MICDEV:$targetdir/ $SUPPRESS 2>/dev/null || exit \$?" #
 | 
			
		||||
    eval "rm $hostdir/* $SUPPRESS 2>/dev/null || exit \$?" #
 | 
			
		||||
} # copy files
 | 
			
		||||
#
 | 
			
		||||
function clean_all() { #
 | 
			
		||||
    eval "$RSH rm -fr $targetdir $SUPPRESS" ||: #
 | 
			
		||||
    eval "rm -fr $hostdir $SUPPRESS" ||: #
 | 
			
		||||
} # clean all temporary files
 | 
			
		||||
#
 | 
			
		||||
function kill_interrupt() { #
 | 
			
		||||
    echo -e "\n*** Killing remote $exename ***" && $RSH "killall $exename" #
 | 
			
		||||
    clean_all #
 | 
			
		||||
} # kill target process
 | 
			
		||||
#
 | 
			
		||||
trap 'clean_all' SIGINT SIGQUIT # trap keyboard interrupt (control-c)
 | 
			
		||||
#
 | 
			
		||||
# Transfer the test executable file and its auxiliary libraries (named as {test}_dll.so) to the target device.
 | 
			
		||||
copy_files $fexename `ls ${exename%\.*}*.so 2>/dev/null ||:` #
 | 
			
		||||
#
 | 
			
		||||
# Collect all dependencies of the test and its auxiliary libraries to transfer them to the target device.
 | 
			
		||||
ldd_list+="libtbbmalloc*.so* libirml*.so* `$RSH ldd $targetdir/\* | grep = | cut -d= -f1 2>/dev/null`" #
 | 
			
		||||
fnamelist="" #
 | 
			
		||||
#
 | 
			
		||||
# Find the libraries and add them to the list.
 | 
			
		||||
# For example, go through MIC_LD_LIBRARY_PATH and add TBB libraries from the first
 | 
			
		||||
# directory that contains tbb files
 | 
			
		||||
mic_dir_list=`echo .:$MIC_LD_LIBRARY_PATH | tr : " "` #
 | 
			
		||||
[ $verbose ] && echo Searching libraries in $mic_dir_list
 | 
			
		||||
for name in $ldd_list; do # adds the first matched name in specified dirs
 | 
			
		||||
    found="`find -L $mic_dir_list -name $name -a -readable -print -quit 2>/dev/null` "||: #
 | 
			
		||||
    [ $verbose ] && echo File $name: $found
 | 
			
		||||
    fnamelist+=$found
 | 
			
		||||
done #
 | 
			
		||||
#
 | 
			
		||||
# Remove extra spaces.
 | 
			
		||||
fnamelist=`echo $fnamelist` #
 | 
			
		||||
# Transfer collected executable and library files to the target device.
 | 
			
		||||
[ -n "$fnamelist" ] && copy_files $fnamelist
 | 
			
		||||
#
 | 
			
		||||
# Transfer input files used by example codes by scanning the executable argument list.
 | 
			
		||||
argfiles= #
 | 
			
		||||
args= #
 | 
			
		||||
for arg in "$@"; do #
 | 
			
		||||
  if [ -r $arg ]; then #
 | 
			
		||||
    argfiles+="$arg " #
 | 
			
		||||
    args+="$(basename $arg) " #
 | 
			
		||||
  else #
 | 
			
		||||
    args+="$arg " #
 | 
			
		||||
  fi #
 | 
			
		||||
done #
 | 
			
		||||
[ -n "$argfiles" ] && copy_files $argfiles #
 | 
			
		||||
#
 | 
			
		||||
# Get the list of transferred files
 | 
			
		||||
testfiles="`$RSH find $targetdir/ -type f | tr '\n' ' ' 2>/dev/null`" #
 | 
			
		||||
#
 | 
			
		||||
[ $verbose ] && echo Running $run_prefix ./$exename $args #
 | 
			
		||||
# Run the test on the target device
 | 
			
		||||
trap 'kill_interrupt' SIGINT SIGQUIT # trap keyboard interrupt (control-c)
 | 
			
		||||
trap - ERR #
 | 
			
		||||
run_env+="cd $targetdir; export LD_LIBRARY_PATH=.:\$LD_LIBRARY_PATH;" #
 | 
			
		||||
$RSH "$run_env $run_prefix ./$exename $args" #
 | 
			
		||||
#
 | 
			
		||||
# Delete the test files and get the list of output files
 | 
			
		||||
outfiles=`$RSH rm $testfiles 2>/dev/null; find $targetdir/ -type f 2>/dev/null` ||: #
 | 
			
		||||
if [ -n "$outfiles" ]; then #
 | 
			
		||||
    for outfile in $outfiles; do #
 | 
			
		||||
        filename=$(basename $outfile) #
 | 
			
		||||
        subdir=$(dirname $outfile) #
 | 
			
		||||
        subdir="${subdir#$targetdir}" #
 | 
			
		||||
        [ -n $subdir ] subdir=$subdir/ #
 | 
			
		||||
        # Create directories on host
 | 
			
		||||
        [ ! -d "$hostdir/$subdir" ] && mkdir -p "$hostdir/$subdir" #
 | 
			
		||||
        [ ! -d "$currentdir/$subdir" ] && mkdir -p "$currentdir/$subdir" #
 | 
			
		||||
        # Copy the output file to the temporary directory on host
 | 
			
		||||
        eval "$RCP -r '$MICDEV:${outfile#}' '$hostdir/$subdir$filename' $SUPPRESS 2>&1 || exit \$?" #
 | 
			
		||||
        # Copy the output file from the temporary directory to the current directory
 | 
			
		||||
        eval "cp '$hostdir/$subdir$filename' '$currentdir/$subdir$filename' $SUPPRESS 2>&1 || exit \$?" #
 | 
			
		||||
    done #
 | 
			
		||||
fi #
 | 
			
		||||
#
 | 
			
		||||
# Clean up temporary directories
 | 
			
		||||
clean_all
 | 
			
		||||
#
 | 
			
		||||
# Return the exit code of the test.
 | 
			
		||||
exit $? #
 | 
			
		||||
							
								
								
									
										114
									
								
								cs440-acg/ext/tbb/build/mic.offload.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								cs440-acg/ext/tbb/build/mic.offload.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,114 @@
 | 
			
		||||
# 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.
 | 
			
		||||
 | 
			
		||||
ifneq (mic,$(offload))
 | 
			
		||||
  $(error File mic.offload.inc should not be included directly. Use offload=mic instead.)
 | 
			
		||||
endif
 | 
			
		||||
ifneq (icc,$(compiler))
 | 
			
		||||
  $(error Only Intel(R) Compiler is supported for MIC offload compilation)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# The same build prefix should be used in mic.linux.inc
 | 
			
		||||
mic_tbb_build_prefix=mic_icc$(CPF_SUFFIX)
 | 
			
		||||
MIC_OFFLOAD_NATIVE_PATH?=../$(mic_tbb_build_prefix)_$(cfg)
 | 
			
		||||
 | 
			
		||||
ifdef BUILDING_PHASE
 | 
			
		||||
  ifeq ($(BUILDING_PHASE),1)
 | 
			
		||||
    # Tests
 | 
			
		||||
    export MIC_OFFLOAD_NATIVE_PATH
 | 
			
		||||
    LINK_TBB_NATIVE.LIB=$(MIC_OFFLOAD_NATIVE_PATH)/$(TBB.LIB)
 | 
			
		||||
    LINK_TBB.LIB=-qoffload-option,mic,ld,"$(LINK_TBB_NATIVE.LIB)" $(TBB.LIB)
 | 
			
		||||
    LINK_MALLOC_NATIVE.LIB=$(MIC_OFFLOAD_NATIVE_PATH)/$(MALLOC.DLL)
 | 
			
		||||
    LINK_MALLOC.LIB=-qoffload-option,mic,ld,"$(LINK_MALLOC_NATIVE.LIB)" $(MALLOC.LIB)
 | 
			
		||||
    LINK_MALLOCPROXY_NATIVE.LIB=$(MIC_OFFLOAD_NATIVE_PATH)/$(MALLOCPROXY.DLL)
 | 
			
		||||
    LINK_MALLOCPROXY.LIB=-qoffload-option,mic,ld,"$(LINK_MALLOCPROXY_NATIVE.LIB)" $(MALLOCPROXY.LIB)
 | 
			
		||||
 | 
			
		||||
    # Export extensions for test_launcher
 | 
			
		||||
    export DLL
 | 
			
		||||
    export TEST_EXT=offload.exe
 | 
			
		||||
    OBJ=offload.o
 | 
			
		||||
 | 
			
		||||
    # Do not use -Werror because it is too strict for the early offload compiler.
 | 
			
		||||
    # Need to set anything because WARNING_AS_ERROR_KEY should not be empty.
 | 
			
		||||
    # Treat #2426 as a warning. Print errors only.
 | 
			
		||||
    tbb_strict=0
 | 
			
		||||
    WARNING_AS_ERROR_KEY = Warning as error
 | 
			
		||||
    WARNING_KEY = -diag-warning 2426 -w0
 | 
			
		||||
 | 
			
		||||
    CXX_MIC_STUFF = -qoffload-attribute-target=mic -D__TBB_MIC_OFFLOAD=1 -qoffload-option,mic,compiler,"-D__TBB_MIC_OFFLOAD=1 $(CXX_MIC_NATIVE_STUFF)"
 | 
			
		||||
    CXX_MIC_NATIVE_STUFF = -DHARNESS_INCOMPLETE_SOURCES=1 -D__TBB_MIC_NATIVE -DTBB_USE_EXCEPTIONS=0
 | 
			
		||||
    CPLUS_FLAGS += $(CXX_MIC_STUFF)
 | 
			
		||||
 | 
			
		||||
    # Some tests require that an executable exports its symbols.
 | 
			
		||||
    LINK_FLAGS += -qoffload-option,mic,ld,"--export-dynamic"
 | 
			
		||||
 | 
			
		||||
    # libcoi_device.so is needed for COIProcessProxyFlush used in Harness.
 | 
			
		||||
    LINK_FLAGS += -qoffload-option,mic,ld,"-lcoi_device"
 | 
			
		||||
 | 
			
		||||
    # DSO-linking semantics forces linking libpthread and librt to a test.
 | 
			
		||||
    LINK_FLAGS += -qoffload-option,mic,ld,"-lpthread -lrt"
 | 
			
		||||
 | 
			
		||||
    .PHONY: FORCE
 | 
			
		||||
    FORCE:
 | 
			
		||||
 | 
			
		||||
    $(MIC_OFFLOAD_NATIVE_PATH)/%_dll.$(DLL): FORCE
 | 
			
		||||
	@$(MAKE) --no-print-directory -C "$(MIC_OFFLOAD_NATIVE_PATH)" target=mic offload= -f$(tbb_root)/build/Makefile.$(TESTFILE) $*_dll.$(DLL)
 | 
			
		||||
    %_dll.$(DLL): $(MIC_OFFLOAD_NATIVE_PATH)/%_dll.$(DLL) FORCE
 | 
			
		||||
	@$(MAKE) --no-print-directory offload= -f$(tbb_root)/build/Makefile.$(TESTFILE) $*_dll.$(DLL)
 | 
			
		||||
 | 
			
		||||
    .PRECIOUS: $(MIC_OFFLOAD_NATIVE_PATH)/%_dll.$(DLL)
 | 
			
		||||
 | 
			
		||||
    %.$(TEST_EXT): LINK_FILES+=-qoffload-option,mic,ld,"$(addprefix $(MIC_OFFLOAD_NATIVE_PATH)/,$(TEST_LIBS))"
 | 
			
		||||
 | 
			
		||||
    TEST_LAUNCHER=sh $(tbb_root)/build/test_launcher.sh $(largs)
 | 
			
		||||
 | 
			
		||||
    ifdef MIC_LD_LIBRARY_PATH
 | 
			
		||||
      export MIC_LD_LIBRARY_PATH := $(MIC_OFFLOAD_NATIVE_PATH):$(MIC_LD_LIBRARY_PATH)
 | 
			
		||||
    else
 | 
			
		||||
      export MIC_LD_LIBRARY_PATH := $(MIC_OFFLOAD_NATIVE_PATH)
 | 
			
		||||
    endif
 | 
			
		||||
  else
 | 
			
		||||
    # Examples
 | 
			
		||||
    export UI = con
 | 
			
		||||
    export x64 = 64
 | 
			
		||||
  endif
 | 
			
		||||
else
 | 
			
		||||
  # Libraries
 | 
			
		||||
  LIB_TARGETS = tbb tbbmalloc tbbproxy rml
 | 
			
		||||
  addsuffixes = $(foreach suff,$(1),$(addsuffix $(suff),$(2)))
 | 
			
		||||
 | 
			
		||||
  .PHONY: $(call addsuffixes, _debug _release _debug_mic _release_mic,$(LIB_TARGETS))
 | 
			
		||||
 | 
			
		||||
  # The dependence on *_debug and *_release targets unifies the offload support
 | 
			
		||||
  # for top-level Makefile and src/Makefile
 | 
			
		||||
  $(LIB_TARGETS): %: %_release %_debug
 | 
			
		||||
 | 
			
		||||
  # "override offload=" suppresses the "offload" variable value for nested makes
 | 
			
		||||
  $(LIB_TARGETS) $(call addsuffixes, _debug _release,$(LIB_TARGETS)): override offload=
 | 
			
		||||
  # Apply overriding for library builds
 | 
			
		||||
  export offload
 | 
			
		||||
  export tbb_build_prefix
 | 
			
		||||
  # Add the dependency on target libraries
 | 
			
		||||
  $(call addsuffixes, _debug _release,$(LIB_TARGETS)): %: %_mic
 | 
			
		||||
 | 
			
		||||
  # tbb_build_prefix should be overridden since we want to restart make in "clear" environment
 | 
			
		||||
  $(call addsuffixes, _debug_mic _release_mic,$(LIB_TARGETS)): override tbb_build_prefix=
 | 
			
		||||
  $(call addsuffixes, _debug_mic _release_mic,$(LIB_TARGETS)): %_mic:
 | 
			
		||||
	@$(MAKE) --no-print-directory -C "$(full_tbb_root)/src" $* target=mic tbb_root=..
 | 
			
		||||
 | 
			
		||||
  mic_clean: override tbb_build_prefix=
 | 
			
		||||
  mic_clean:
 | 
			
		||||
	@$(MAKE) --no-print-directory -C "$(full_tbb_root)/src" clean offload= target=mic tbb_root=..
 | 
			
		||||
  clean: mic_clean
 | 
			
		||||
endif
 | 
			
		||||
							
								
								
									
										1
									
								
								cs440-acg/ext/tbb/build/suncc.map.pause
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								cs440-acg/ext/tbb/build/suncc.map.pause
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
hwcap_1 = OVERRIDE;
 | 
			
		||||
							
								
								
									
										70
									
								
								cs440-acg/ext/tbb/build/test_launcher.bat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								cs440-acg/ext/tbb/build/test_launcher.bat
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,70 @@
 | 
			
		||||
@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
 | 
			
		||||
 | 
			
		||||
set cmd_line=
 | 
			
		||||
if DEFINED run_prefix set cmd_line=%run_prefix%
 | 
			
		||||
:while
 | 
			
		||||
if NOT "%1"=="" (
 | 
			
		||||
    REM Verbose mode
 | 
			
		||||
    if "%1"=="-v" (
 | 
			
		||||
        set verbose=yes
 | 
			
		||||
        GOTO continue
 | 
			
		||||
    )
 | 
			
		||||
    REM Silent mode of 'make' requires additional support for associating
 | 
			
		||||
    REM of test output with the test name. Verbose mode is the simplest way
 | 
			
		||||
    if "%1"=="-q" (
 | 
			
		||||
        set verbose=yes
 | 
			
		||||
        GOTO continue
 | 
			
		||||
    )
 | 
			
		||||
    REM Run in stress mode
 | 
			
		||||
    if "%1"=="-s" (
 | 
			
		||||
        echo Doing stress testing. Press Ctrl-C to terminate
 | 
			
		||||
        set stress=yes
 | 
			
		||||
        GOTO continue
 | 
			
		||||
    )
 | 
			
		||||
    REM Repeat execution specified number of times
 | 
			
		||||
    if "%1"=="-r" (
 | 
			
		||||
        set repeat=%2
 | 
			
		||||
        SHIFT
 | 
			
		||||
        GOTO continue
 | 
			
		||||
    )
 | 
			
		||||
    REM no LD_PRELOAD under Windows
 | 
			
		||||
    REM but run the test to check "#pragma comment" construction
 | 
			
		||||
    if "%1"=="-l" (
 | 
			
		||||
        REM The command line may specify -l with empty dll name,
 | 
			
		||||
        REM e.g. "test_launcher.bat -l  app.exe". If the dll name is
 | 
			
		||||
        REM empty then %2 contains the application name and the SHIFT
 | 
			
		||||
        REM operation is not necessary.
 | 
			
		||||
        if exist "%3" SHIFT
 | 
			
		||||
        GOTO continue
 | 
			
		||||
    )
 | 
			
		||||
    REM no need to setup up stack size under Windows
 | 
			
		||||
    if "%1"=="-u" GOTO continue
 | 
			
		||||
    set cmd_line=%cmd_line% %1
 | 
			
		||||
:continue
 | 
			
		||||
    SHIFT
 | 
			
		||||
    GOTO while
 | 
			
		||||
)
 | 
			
		||||
set cmd_line=%cmd_line:./=.\%
 | 
			
		||||
if DEFINED verbose echo Running %cmd_line%
 | 
			
		||||
if DEFINED stress set cmd_line=%cmd_line% ^& IF NOT ERRORLEVEL 1 GOTO stress
 | 
			
		||||
:stress
 | 
			
		||||
if DEFINED repeat (
 | 
			
		||||
    for /L %%i in (1,1,%repeat%) do echo %%i of %repeat%: & %cmd_line%
 | 
			
		||||
) else (
 | 
			
		||||
    %cmd_line%
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										90
									
								
								cs440-acg/ext/tbb/build/test_launcher.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								cs440-acg/ext/tbb/build/test_launcher.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,90 @@
 | 
			
		||||
#!/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:
 | 
			
		||||
# test_launcher.sh [-v] [-q] [-s] [-r <repeats>] [-u] [-l <library>] <executable> <arg1> <arg2> <argN>
 | 
			
		||||
#         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 <repeats> specifies number of times to repeat execution
 | 
			
		||||
#         where: -u limits stack size
 | 
			
		||||
#         where: -l <library> specifies the library name to be assigned to LD_PRELOAD
 | 
			
		||||
 | 
			
		||||
while getopts  "qvsr:ul:" flag #
 | 
			
		||||
do case $flag in #
 | 
			
		||||
    s )  # Stress testing mode
 | 
			
		||||
         run_prefix="stressed $run_prefix" ;; #
 | 
			
		||||
    r )  # Repeats test n times
 | 
			
		||||
         repeat=$OPTARG #
 | 
			
		||||
         run_prefix="repeated $run_prefix" ;; #
 | 
			
		||||
    l )  if [ `uname` = 'Linux' ] ; then #
 | 
			
		||||
             LD_PRELOAD=$OPTARG #
 | 
			
		||||
         elif [ `uname` = 'Darwin' ] ; then #
 | 
			
		||||
             DYLD_INSERT_LIBRARIES=$OPTARG #
 | 
			
		||||
         else #
 | 
			
		||||
             echo 'skip' #
 | 
			
		||||
             exit #
 | 
			
		||||
         fi ;; #
 | 
			
		||||
    u )  # Set stack limit
 | 
			
		||||
         ulimit -s 10240 ;; #
 | 
			
		||||
    q )  # Quiet mode, removes 'done' but prepends any other output by test name
 | 
			
		||||
         OUTPUT='2>&1 | sed -e "s/done//;/^[[:space:]]*$/d;s!^!$1: !"' ;; #
 | 
			
		||||
    v )  # Verbose mode
 | 
			
		||||
         verbose=1 ;; #
 | 
			
		||||
esac done #
 | 
			
		||||
shift `expr $OPTIND - 1` #
 | 
			
		||||
if [ $MIC_OFFLOAD_NATIVE_PATH ] ; then #
 | 
			
		||||
    LIB_NAME=${1/%.$TEST_EXT/_dll.$DLL} #
 | 
			
		||||
    if [ -f "$MIC_OFFLOAD_NATIVE_PATH/$LIB_NAME" ]; then #
 | 
			
		||||
       [ -z "$MIC_CARD" ] && MIC_CARD=mic0 #
 | 
			
		||||
        TMPDIR_HOST=`mktemp -d /tmp/tbbtestXXXXXX` #
 | 
			
		||||
        TMPDIR_MIC=`sudo ssh $MIC_CARD mktemp -d /tmp/tbbtestXXXXXX` #
 | 
			
		||||
        sudo ssh $MIC_CARD "chmod +x $TMPDIR_MIC" #
 | 
			
		||||
        # Test specific library may depend on libtbbmalloc*
 | 
			
		||||
        cp "$MIC_OFFLOAD_NATIVE_PATH/$LIB_NAME" "$MIC_OFFLOAD_NATIVE_PATH"/libtbbmalloc* "$TMPDIR_HOST" >/dev/null 2>/dev/null #
 | 
			
		||||
        sudo scp "$TMPDIR_HOST"/* $MIC_CARD:"$TMPDIR_MIC" >/dev/null 2>/dev/null #
 | 
			
		||||
 | 
			
		||||
        LD_LIBRARY_PATH=$TMPDIR_MIC:$LD_LIBRARY_PATH #
 | 
			
		||||
        export LD_LIBRARY_PATH #
 | 
			
		||||
    fi #
 | 
			
		||||
fi #
 | 
			
		||||
stressed() { echo Doing stress testing. Press Ctrl-C to terminate #
 | 
			
		||||
    while :; do $*; done;#
 | 
			
		||||
} #
 | 
			
		||||
repeated() { #
 | 
			
		||||
    i=0; while [ "$i" -lt $repeat ]; do i=`expr $i + 1`; echo $i of $repeat:; $*; done #
 | 
			
		||||
} #
 | 
			
		||||
# DYLD_LIBRARY_PATH can be purged on OS X 10.11, set it again
 | 
			
		||||
if [ `uname` = 'Darwin' -a -z "$DYLD_LIBRARY_PATH" ] ; then #
 | 
			
		||||
    DYLD_LIBRARY_PATH=. #
 | 
			
		||||
    export DYLD_LIBRARY_PATH #
 | 
			
		||||
fi #
 | 
			
		||||
# Run the command line passed via parameters
 | 
			
		||||
[ $verbose ] && echo Running $run_prefix $* #
 | 
			
		||||
if [ -n "$LD_PRELOAD" ] ; then #
 | 
			
		||||
    export LD_PRELOAD #
 | 
			
		||||
elif [ -n "$DYLD_INSERT_LIBRARIES" ] ; then #
 | 
			
		||||
    export DYLD_INSERT_LIBRARIES #
 | 
			
		||||
fi #
 | 
			
		||||
exec 4>&1 # extracting exit code of the first command in pipeline needs duplicated stdout
 | 
			
		||||
# custom redirection needs eval, otherwise shell cannot parse it
 | 
			
		||||
err=`eval '( $run_prefix $* || echo \$? >&3; )' ${OUTPUT} 3>&1 >&4` #
 | 
			
		||||
[ -z "$err" ] || echo $1: exited with error $err #
 | 
			
		||||
if [ $MIC_OFFLOAD_NATIVE_PATH ] ; then #
 | 
			
		||||
    sudo ssh $MIC_CARD rm -fr "$TMPDIR_MIC" >/dev/null 2>/dev/null #
 | 
			
		||||
    rm -fr "$TMPDIR_HOST" >/dev/null 2>/dev/null #
 | 
			
		||||
fi #
 | 
			
		||||
exit $err #
 | 
			
		||||
							
								
								
									
										30
									
								
								cs440-acg/ext/tbb/build/version_info_aix.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								cs440-acg/ext/tbb/build/version_info_aix.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
#!/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.
 | 
			
		||||
 | 
			
		||||
# Script used to generate version info string
 | 
			
		||||
echo "#define __TBB_VERSION_STRINGS(N) \\"
 | 
			
		||||
echo '#N": BUILD_HOST'"\t\t"`hostname -s`" ("`uname -m`")"'" ENDL \'
 | 
			
		||||
# find OS name in *-release and issue* files by filtering blank lines and lsb-release content out
 | 
			
		||||
echo '#N": BUILD_OS'"\t\t"`lsb_release -sd 2>/dev/null | grep -ih '[a-z] ' - /etc/*release /etc/issue 2>/dev/null | head -1 | sed -e 's/["\\\\]//g'`'" ENDL \'
 | 
			
		||||
echo '#N": BUILD_KERNEL'"\t"`uname -srv`'" ENDL \'
 | 
			
		||||
echo '#N": BUILD_GCC'"\t\t"`g++ --version </dev/null 2>&1 | grep 'g++'`'" ENDL \'
 | 
			
		||||
[ -z "$COMPILER_VERSION" ] || echo '#N": BUILD_COMPILER'"\t"$COMPILER_VERSION'" ENDL \'
 | 
			
		||||
echo '#N": BUILD_LIBC'"\t"`getconf GNU_LIBC_VERSION | grep glibc | sed -e 's/^glibc //'`'" ENDL \'
 | 
			
		||||
echo '#N": BUILD_LD'"\t\t"`ld -v 2>&1 | grep 'version'`'" ENDL \'
 | 
			
		||||
echo '#N": BUILD_TARGET'"\t$arch on $runtime"'" ENDL \'
 | 
			
		||||
echo '#N": BUILD_COMMAND'"\t"$*'" ENDL \'
 | 
			
		||||
echo ""
 | 
			
		||||
echo "#define __TBB_DATETIME \""`date -u`"\""
 | 
			
		||||
							
								
								
									
										29
									
								
								cs440-acg/ext/tbb/build/version_info_android.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								cs440-acg/ext/tbb/build/version_info_android.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
#!/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.
 | 
			
		||||
 | 
			
		||||
# Script used to generate version info string
 | 
			
		||||
echo "#define __TBB_VERSION_STRINGS(N) \\"
 | 
			
		||||
echo '#N": BUILD_HOST'"\t\t"`hostname -s`" ("`uname -m`")"'" ENDL \'
 | 
			
		||||
# find OS name in *-release and issue* files by filtering blank lines and lsb-release content out
 | 
			
		||||
echo '#N": BUILD_OS'"\t\t"`lsb_release -sd 2>/dev/null | grep -ih '[a-z] ' - /etc/*release /etc/issue 2>/dev/null | head -1 | sed -e 's/["\\\\]//g'`'" ENDL \'
 | 
			
		||||
echo '#N": BUILD_TARGET_CXX'"\t"`$TARGET_CXX --version | head -n1`'" ENDL \'
 | 
			
		||||
[ -z "$COMPILER_VERSION" ] || echo '#N": BUILD_COMPILER'"\t"$COMPILER_VERSION'" ENDL \'
 | 
			
		||||
[ -z "$ndk_version" ] || echo '#N": BUILD_NDK'"\t\t$ndk_version"'" ENDL \'
 | 
			
		||||
echo '#N": BUILD_LD'"\t\t"`${tbb_tool_prefix}ld -v 2>&1 | grep 'ld'`'" ENDL \'
 | 
			
		||||
echo '#N": BUILD_TARGET'"\t$arch on $runtime"'" ENDL \'
 | 
			
		||||
echo '#N": BUILD_COMMAND'"\t"$*'" ENDL \'
 | 
			
		||||
echo ""
 | 
			
		||||
echo "#define __TBB_DATETIME \""`date -u`"\""
 | 
			
		||||
							
								
								
									
										30
									
								
								cs440-acg/ext/tbb/build/version_info_linux.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								cs440-acg/ext/tbb/build/version_info_linux.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
#!/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.
 | 
			
		||||
 | 
			
		||||
# Script used to generate version info string
 | 
			
		||||
echo "#define __TBB_VERSION_STRINGS(N) \\"
 | 
			
		||||
echo '#N": BUILD_HOST'"\t\t"`hostname -s`" ("`uname -m`")"'" ENDL \'
 | 
			
		||||
# find OS name in *-release and issue* files by filtering blank lines and lsb-release content out
 | 
			
		||||
echo '#N": BUILD_OS'"\t\t"`lsb_release -sd 2>/dev/null | grep -ih '[a-z] ' - /etc/*release /etc/issue 2>/dev/null | head -1 | sed -e 's/["\\\\]//g'`'" ENDL \'
 | 
			
		||||
echo '#N": BUILD_KERNEL'"\t"`uname -srv`'" ENDL \'
 | 
			
		||||
echo '#N": BUILD_GCC'"\t\t"`g++ --version </dev/null 2>&1 | grep 'g++'`'" ENDL \'
 | 
			
		||||
[ -z "$COMPILER_VERSION" ] || echo '#N": BUILD_COMPILER'"\t"$COMPILER_VERSION'" ENDL \'
 | 
			
		||||
echo '#N": BUILD_LIBC'"\t"`getconf GNU_LIBC_VERSION | grep glibc | sed -e 's/^glibc //'`'" ENDL \'
 | 
			
		||||
echo '#N": BUILD_LD'"\t\t"`ld -v 2>&1 | grep 'version'`'" ENDL \'
 | 
			
		||||
echo '#N": BUILD_TARGET'"\t$arch on $runtime"'" ENDL \'
 | 
			
		||||
echo '#N": BUILD_COMMAND'"\t"$*'" ENDL \'
 | 
			
		||||
echo ""
 | 
			
		||||
echo "#define __TBB_DATETIME \""`date -u`"\""
 | 
			
		||||
							
								
								
									
										28
									
								
								cs440-acg/ext/tbb/build/version_info_macos.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								cs440-acg/ext/tbb/build/version_info_macos.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
#!/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.
 | 
			
		||||
 | 
			
		||||
# Script used to generate version info string
 | 
			
		||||
echo "#define __TBB_VERSION_STRINGS(N) \\"
 | 
			
		||||
echo '#N": BUILD_HOST'"\t\t"`hostname -s`" ("`arch`")"'" ENDL \'
 | 
			
		||||
echo '#N": BUILD_OS'"\t\t"`sw_vers -productName`" version "`sw_vers -productVersion`'" ENDL \'
 | 
			
		||||
echo '#N": BUILD_KERNEL'"\t"`uname -v`'" ENDL \'
 | 
			
		||||
echo '#N": BUILD_CLANG'"\t"`clang --version | sed -n "1p"`'" ENDL \'
 | 
			
		||||
echo '#N": BUILD_XCODE'"\t"`xcodebuild -version </dev/null 2>&1 | grep 'Xcode'`'" ENDL \'
 | 
			
		||||
[ -z "$COMPILER_VERSION" ] || echo '#N": BUILD_COMPILER'"\t"$COMPILER_VERSION'" ENDL \'
 | 
			
		||||
echo '#N": BUILD_TARGET'"\t$arch on $runtime"'" ENDL \'
 | 
			
		||||
echo '#N": BUILD_COMMAND'"\t"$*'" ENDL \'
 | 
			
		||||
echo ""
 | 
			
		||||
echo "#define __TBB_DATETIME \""`date -u`"\""
 | 
			
		||||
							
								
								
									
										27
									
								
								cs440-acg/ext/tbb/build/version_info_sunos.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								cs440-acg/ext/tbb/build/version_info_sunos.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
			
		||||
#!/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.
 | 
			
		||||
 | 
			
		||||
# Script used to generate version info string
 | 
			
		||||
echo "#define __TBB_VERSION_STRINGS(N) \\"
 | 
			
		||||
echo '#N": BUILD_HOST'"\t"`hostname`" ("`arch`")"'" ENDL \'
 | 
			
		||||
echo '#N": BUILD_OS'"\t\t"`uname`'" ENDL \'
 | 
			
		||||
echo '#N": BUILD_KERNEL'"\t"`uname -srv`'" ENDL \'
 | 
			
		||||
echo '#N": BUILD_SUNCC'"\t"`CC -V </dev/null 2>&1 | grep 'C++'`'" ENDL \'
 | 
			
		||||
[ -z "$COMPILER_VERSION" ] || echo '#N": BUILD_COMPILER'"\t"$COMPILER_VERSION'" ENDL \'
 | 
			
		||||
echo '#N": BUILD_TARGET'"\t$arch on $runtime"'" ENDL \'
 | 
			
		||||
echo '#N": BUILD_COMMAND'"\t"$*'" ENDL \'
 | 
			
		||||
echo ""
 | 
			
		||||
echo "#define __TBB_DATETIME \""`date -u`"\""
 | 
			
		||||
							
								
								
									
										91
									
								
								cs440-acg/ext/tbb/build/version_info_windows.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								cs440-acg/ext/tbb/build/version_info_windows.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,91 @@
 | 
			
		||||
// 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.
 | 
			
		||||
 | 
			
		||||
var WshShell = WScript.CreateObject("WScript.Shell");
 | 
			
		||||
 | 
			
		||||
var tmpExec;
 | 
			
		||||
 | 
			
		||||
WScript.Echo("#define __TBB_VERSION_STRINGS(N) \\");
 | 
			
		||||
 | 
			
		||||
//Getting BUILD_HOST
 | 
			
		||||
WScript.echo( "#N \": BUILD_HOST\\t\\t" + 
 | 
			
		||||
              WshShell.ExpandEnvironmentStrings("%COMPUTERNAME%") +
 | 
			
		||||
              "\" ENDL \\" );
 | 
			
		||||
 | 
			
		||||
//Getting BUILD_OS
 | 
			
		||||
tmpExec = WshShell.Exec("cmd /c ver");
 | 
			
		||||
while ( tmpExec.Status == 0 ) {
 | 
			
		||||
    WScript.Sleep(100);
 | 
			
		||||
}
 | 
			
		||||
tmpExec.StdOut.ReadLine();
 | 
			
		||||
 | 
			
		||||
WScript.echo( "#N \": BUILD_OS\\t\\t" + 
 | 
			
		||||
              tmpExec.StdOut.ReadLine() +
 | 
			
		||||
              "\" ENDL \\" );
 | 
			
		||||
 | 
			
		||||
if ( WScript.Arguments(0).toLowerCase().match("gcc") ) {
 | 
			
		||||
    tmpExec = WshShell.Exec(WScript.Arguments(0) + " --version");
 | 
			
		||||
    WScript.echo( "#N \": BUILD_GCC\\t\\t" + 
 | 
			
		||||
                  tmpExec.StdOut.ReadLine() + 
 | 
			
		||||
                  "\" ENDL \\" );
 | 
			
		||||
 | 
			
		||||
} else if ( WScript.Arguments(0).toLowerCase().match("clang") ) {
 | 
			
		||||
    tmpExec = WshShell.Exec(WScript.Arguments(0) + " --version");
 | 
			
		||||
    WScript.echo( "#N \": BUILD_CLANG\\t" + 
 | 
			
		||||
                  tmpExec.StdOut.ReadLine() + 
 | 
			
		||||
                  "\" ENDL \\" );
 | 
			
		||||
 | 
			
		||||
} else { // MS / Intel compilers
 | 
			
		||||
    //Getting BUILD_CL
 | 
			
		||||
    tmpExec = WshShell.Exec("cmd /c echo #define 0 0>empty.cpp");
 | 
			
		||||
    tmpExec = WshShell.Exec("cl -c empty.cpp ");
 | 
			
		||||
    while ( tmpExec.Status == 0 ) {
 | 
			
		||||
        WScript.Sleep(100);
 | 
			
		||||
    }
 | 
			
		||||
    var clVersion = tmpExec.StdErr.ReadLine();
 | 
			
		||||
    WScript.echo( "#N \": BUILD_CL\\t\\t" + 
 | 
			
		||||
                  clVersion +
 | 
			
		||||
                  "\" ENDL \\" );
 | 
			
		||||
 | 
			
		||||
    //Getting BUILD_COMPILER
 | 
			
		||||
    if ( WScript.Arguments(0).toLowerCase().match("icl") ) {
 | 
			
		||||
        tmpExec = WshShell.Exec("icl -c empty.cpp ");
 | 
			
		||||
        while ( tmpExec.Status == 0 ) {
 | 
			
		||||
            WScript.Sleep(100);
 | 
			
		||||
        }
 | 
			
		||||
        WScript.echo( "#N \": BUILD_COMPILER\\t" + 
 | 
			
		||||
                      tmpExec.StdErr.ReadLine() + 
 | 
			
		||||
                      "\" ENDL \\" );
 | 
			
		||||
    } else {
 | 
			
		||||
        WScript.echo( "#N \": BUILD_COMPILER\\t\\t" + 
 | 
			
		||||
                      clVersion +
 | 
			
		||||
                      "\" ENDL \\" );
 | 
			
		||||
    }
 | 
			
		||||
    tmpExec = WshShell.Exec("cmd /c del /F /Q empty.obj empty.cpp");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//Getting BUILD_TARGET
 | 
			
		||||
WScript.echo( "#N \": BUILD_TARGET\\t" + 
 | 
			
		||||
              WScript.Arguments(1) + 
 | 
			
		||||
              "\" ENDL \\" );
 | 
			
		||||
 | 
			
		||||
//Getting BUILD_COMMAND
 | 
			
		||||
WScript.echo( "#N \": BUILD_COMMAND\\t" + WScript.Arguments(2) + "\" ENDL" );
 | 
			
		||||
 | 
			
		||||
//Getting __TBB_DATETIME and __TBB_VERSION_YMD
 | 
			
		||||
var date = new Date();
 | 
			
		||||
WScript.echo( "#define __TBB_DATETIME \"" + date.toUTCString() + "\"" );
 | 
			
		||||
WScript.echo( "#define __TBB_VERSION_YMD " + date.getUTCFullYear() + ", " + 
 | 
			
		||||
              (date.getUTCMonth() > 8 ? (date.getUTCMonth()+1):("0"+(date.getUTCMonth()+1))) + 
 | 
			
		||||
              (date.getUTCDate() > 9 ? date.getUTCDate():("0"+date.getUTCDate())) );
 | 
			
		||||
							
								
								
									
										11
									
								
								cs440-acg/ext/tbb/build/version_string.ver.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								cs440-acg/ext/tbb/build/version_string.ver.in
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
#define __TBB_VERSION_STRINGS(N) \
 | 
			
		||||
#N": BUILD_HOST         @CMAKE_SYSTEM_NAME@" ENDL \
 | 
			
		||||
#N": BUILD_OS           @CMAKE_SYSTEM@" ENDL \
 | 
			
		||||
#N": BUILD_KERNEL       @CMAKE_SYSTEM_VERSION@" ENDL \
 | 
			
		||||
#N": BUILD_GCC          @CMAKE_CXX_COMPILER_ID@" ENDL \
 | 
			
		||||
#N": BUILD_LIBC         Unknown" ENDL \
 | 
			
		||||
#N": BUILD_LD           Unknown" ENDL \
 | 
			
		||||
#N": BUILD_TARGET       Unknown" ENDL \
 | 
			
		||||
#N": BUILD_COMMAND      Unknown" ENDL
 | 
			
		||||
 | 
			
		||||
#define __TBB_DATETIME "@_configure_date@"
 | 
			
		||||
							
								
								
									
										30
									
								
								cs440-acg/ext/tbb/build/vs2013/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								cs440-acg/ext/tbb/build/vs2013/index.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
<HTML>
 | 
			
		||||
<BODY>
 | 
			
		||||
 | 
			
		||||
<H2>Overview</H2>
 | 
			
		||||
This directory contains the Visual Studio* 2013 solution to build Intel® Threading Building Blocks.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<H2>Files</H2>
 | 
			
		||||
<DL>
 | 
			
		||||
<DT><A HREF="makefile.sln">makefile.sln</A>
 | 
			
		||||
<DD>Solution file.</DD>
 | 
			
		||||
<DT><A HREF="tbb.vcxproj">tbb.vcxproj</A>
 | 
			
		||||
<DD>Library project file.</DD>
 | 
			
		||||
<DT><A HREF="tbbmalloc.vcxproj">tbbmalloc.vcxproj</A>
 | 
			
		||||
<DD>Scalable allocator library project file.</DD>
 | 
			
		||||
<DT><A HREF="tbbmalloc_proxy.vcxproj">tbbmalloc_proxy.vcxproj</A>
 | 
			
		||||
<DD>Standard allocator replacement project file. </DD>
 | 
			
		||||
</DL>
 | 
			
		||||
 | 
			
		||||
<HR>
 | 
			
		||||
<A HREF="../index.html">Up to parent directory</A>
 | 
			
		||||
<P></P>
 | 
			
		||||
Copyright © 2017-2020 Intel Corporation.  All Rights Reserved.
 | 
			
		||||
<P></P>
 | 
			
		||||
Intel and the Intel logo are trademarks of Intel Corporation
 | 
			
		||||
or its subsidiaries in the U.S. and/or other countries.
 | 
			
		||||
<p></p>
 | 
			
		||||
* Other names and brands may be claimed as the property of others.
 | 
			
		||||
</BODY>
 | 
			
		||||
</HTML>
 | 
			
		||||
							
								
								
									
										162
									
								
								cs440-acg/ext/tbb/build/windows.cl.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										162
									
								
								cs440-acg/ext/tbb/build/windows.cl.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,162 @@
 | 
			
		||||
# 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 compiler-specific variables.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# Setting compiler flags.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
CPLUS ?= cl /nologo
 | 
			
		||||
LINK_FLAGS = /link /nologo
 | 
			
		||||
LIB_LINK_FLAGS=/link /nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DYNAMICBASE /NXCOMPAT
 | 
			
		||||
 | 
			
		||||
ifneq (,$(stdver))
 | 
			
		||||
    CXX_STD_FLAGS = /std:$(stdver)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq ($(arch), ia32)
 | 
			
		||||
    LIB_LINK_FLAGS += /SAFESEH
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq ($(runtime), vc_mt)
 | 
			
		||||
    MS_CRT_KEY = /MT$(if $(findstring debug,$(cfg)),d)
 | 
			
		||||
else
 | 
			
		||||
    MS_CRT_KEY = /MD$(if $(findstring debug,$(cfg)),d)
 | 
			
		||||
endif
 | 
			
		||||
EH_FLAGS = $(if $(no_exceptions),/EHs-,/EHsc /GR)
 | 
			
		||||
 | 
			
		||||
# UWD binaries have to use static CRT linkage
 | 
			
		||||
ifeq ($(target_app), uwd)
 | 
			
		||||
    MS_CRT_KEY = /MT$(if $(findstring debug,$(cfg)),d)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq ($(cfg), release)
 | 
			
		||||
        CPLUS_FLAGS = $(MS_CRT_KEY) /O2 /Zi $(EH_FLAGS) /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=$(TBB.LIB)
 | 
			
		||||
        ASM_FLAGS =
 | 
			
		||||
endif
 | 
			
		||||
ifeq ($(cfg), debug)
 | 
			
		||||
        CPLUS_FLAGS = $(MS_CRT_KEY) /Od /Ob0 /Zi $(EH_FLAGS) /Zc:forScope /Zc:wchar_t /DTBB_USE_DEBUG /D__TBB_LIB_NAME=$(TBB.LIB)
 | 
			
		||||
        ASM_FLAGS = /DUSE_FRAME_POINTER
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ZW_KEY = /ZW:nostdlib
 | 
			
		||||
 | 
			
		||||
# These flags are general for Windows* universal applications
 | 
			
		||||
ifneq (,$(target_app))
 | 
			
		||||
    CPLUS_FLAGS += $(ZW_KEY) /D "_UNICODE" /D "UNICODE" /D "WINAPI_FAMILY=WINAPI_FAMILY_APP"
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq ($(target_app), win8ui)
 | 
			
		||||
        _WIN32_WINNT = 0x0602
 | 
			
		||||
else ifneq (,$(filter $(target_app),uwp uwd))
 | 
			
		||||
        _WIN32_WINNT = 0x0A00
 | 
			
		||||
        LIB_LINK_FLAGS += /NODEFAULTLIB:kernel32.lib OneCore.lib
 | 
			
		||||
else
 | 
			
		||||
        CPLUS_FLAGS += /DDO_ITT_NOTIFY
 | 
			
		||||
endif
 | 
			
		||||
ifeq ($(target_mode), store)
 | 
			
		||||
#       it is necessary to source vcvars with 'store' argument in production
 | 
			
		||||
        LIB_LINK_FLAGS += /APPCONTAINER
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
CPLUS_FLAGS += /GS
 | 
			
		||||
 | 
			
		||||
COMPILE_ONLY = /c
 | 
			
		||||
PREPROC_ONLY = /TP /EP
 | 
			
		||||
INCLUDE_KEY = /I
 | 
			
		||||
DEFINE_KEY = /D
 | 
			
		||||
OUTPUT_KEY = /Fe
 | 
			
		||||
OUTPUTOBJ_KEY = /Fo
 | 
			
		||||
WARNING_AS_ERROR_KEY = /WX
 | 
			
		||||
WARNING_SUPPRESS = $(if $(no_exceptions),/wd4530 /wd4577)
 | 
			
		||||
BIGOBJ_KEY = /bigobj
 | 
			
		||||
 | 
			
		||||
ifeq ($(runtime),vc7.1)
 | 
			
		||||
        WARNING_KEY = /W3
 | 
			
		||||
else
 | 
			
		||||
        WARNING_KEY = /W4
 | 
			
		||||
        OPENMP_FLAG = /openmp
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
DYLIB_KEY = /DLL
 | 
			
		||||
EXPORT_KEY = /DEF:
 | 
			
		||||
NODEFAULTLIB_KEY = /Zl
 | 
			
		||||
NOINTRINSIC_KEY = /Oi-
 | 
			
		||||
 | 
			
		||||
INCLUDE_TEST_HEADERS = /FI$(tbb_root)/src/test/harness_preload.h
 | 
			
		||||
 | 
			
		||||
ifeq ($(runtime),vc8)
 | 
			
		||||
        WARNING_KEY += /Wp64
 | 
			
		||||
        CPLUS_FLAGS += /D_USE_RTM_VERSION
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# Since VS2012, VC++ provides /volatile option to control semantics of volatile variables.
 | 
			
		||||
# We want to use strict ISO semantics in the library and tests
 | 
			
		||||
ifeq (ok,$(call detect_js,/minversion cl 17))
 | 
			
		||||
        CPLUS_FLAGS += /volatile:iso
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# Since VS2013, VC++ uses the same .pdb file for different sources so we need
 | 
			
		||||
# to add /FS (Force Synchronous PDB Writes)
 | 
			
		||||
ifeq (ok,$(call detect_js,/minversion cl 18))
 | 
			
		||||
        CPLUS_FLAGS += /FS
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
CPLUS_FLAGS += /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE \
 | 
			
		||||
        /D_WIN32_WINNT=$(_WIN32_WINNT)
 | 
			
		||||
C_FLAGS = $(subst $(ZW_KEY),,$(subst $(EH_FLAGS),,$(CPLUS_FLAGS)))
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# End of setting compiler flags.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# Setting assembler data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
ASSEMBLY_SOURCE=$(arch)-masm
 | 
			
		||||
ifeq (intel64,$(arch))
 | 
			
		||||
    ASM=ml64 /nologo
 | 
			
		||||
    ASM_FLAGS += /DEM64T=1 /c /Zi
 | 
			
		||||
    TBB_ASM.OBJ = atomic_support.obj intel64_misc.obj itsx.obj
 | 
			
		||||
    MALLOC_ASM.OBJ = atomic_support.obj
 | 
			
		||||
else
 | 
			
		||||
ifeq (armv7,$(arch))
 | 
			
		||||
    ASM=
 | 
			
		||||
    TBB_ASM.OBJ= 
 | 
			
		||||
else
 | 
			
		||||
    ASM=ml /nologo
 | 
			
		||||
    ASM_FLAGS += /c /coff /Zi /safeseh
 | 
			
		||||
    TBB_ASM.OBJ = atomic_support.obj lock_byte.obj itsx.obj
 | 
			
		||||
endif
 | 
			
		||||
endif
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# End of setting assembler data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# Setting tbbmalloc data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
M_CPLUS_FLAGS = $(CPLUS_FLAGS)
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# End of setting tbbmalloc data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# End of define compiler-specific variables.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
							
								
								
									
										138
									
								
								cs440-acg/ext/tbb/build/windows.gcc.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										138
									
								
								cs440-acg/ext/tbb/build/windows.gcc.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,138 @@
 | 
			
		||||
# 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.
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# Overriding settings from windows.inc
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
SLASH= $(strip \)
 | 
			
		||||
OBJ = o
 | 
			
		||||
LIBEXT = dll # MinGW allows linking with DLLs directly
 | 
			
		||||
 | 
			
		||||
TBB.RES =
 | 
			
		||||
MALLOC.RES =
 | 
			
		||||
RML.RES =
 | 
			
		||||
TBB.MANIFEST =
 | 
			
		||||
MALLOC.MANIFEST =
 | 
			
		||||
RML.MANIFEST =
 | 
			
		||||
 | 
			
		||||
ifeq (ia32,$(arch))
 | 
			
		||||
    TBB.LST = $(tbb_root)/src/tbb/lin32-tbb-export.lst
 | 
			
		||||
else
 | 
			
		||||
    TBB.LST = $(tbb_root)/src/tbb/win64-gcc-tbb-export.lst
 | 
			
		||||
endif
 | 
			
		||||
MALLOC.DEF = $(MALLOC_ROOT)/$(def_prefix)-gcc-tbbmalloc-export.def
 | 
			
		||||
RML.DEF = $(RML_SERVER_ROOT)/lin-rml-export.def
 | 
			
		||||
 | 
			
		||||
LINK_TBB.LIB = $(TBB.LIB)
 | 
			
		||||
# no TBB proxy for the configuration
 | 
			
		||||
PROXY.LIB =
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# End of overridden settings
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# Compiler-specific variables
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
CPLUS ?= g++
 | 
			
		||||
COMPILE_ONLY = -c -MMD
 | 
			
		||||
PREPROC_ONLY = -E -x c++
 | 
			
		||||
INCLUDE_KEY = -I
 | 
			
		||||
DEFINE_KEY = -D
 | 
			
		||||
OUTPUT_KEY = -o #
 | 
			
		||||
OUTPUTOBJ_KEY = -o #
 | 
			
		||||
PIC_KEY =
 | 
			
		||||
WARNING_AS_ERROR_KEY = -Werror
 | 
			
		||||
WARNING_KEY = -Wall
 | 
			
		||||
TEST_WARNING_KEY = -Wextra -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor -Wno-uninitialized
 | 
			
		||||
WARNING_SUPPRESS = -Wno-parentheses -Wno-uninitialized -Wno-non-virtual-dtor
 | 
			
		||||
DYLIB_KEY = -shared
 | 
			
		||||
LIBDL =
 | 
			
		||||
EXPORT_KEY = -Wl,--version-script,
 | 
			
		||||
LIBS = -lpsapi
 | 
			
		||||
BIGOBJ_KEY = -Wa,-mbig-obj
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# End of compiler-specific variables
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# Command lines
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
LINK_FLAGS = -Wl,--enable-auto-import
 | 
			
		||||
LIB_LINK_FLAGS = $(DYLIB_KEY)
 | 
			
		||||
 | 
			
		||||
# gcc 4.8 and later support RTM intrinsics, but require command line switch to enable them
 | 
			
		||||
ifeq (ok,$(call detect_js,/minversion gcc 4.8))
 | 
			
		||||
    RTM_KEY = -mrtm
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# gcc 6.0 and later have -flifetime-dse option that controls
 | 
			
		||||
# elimination of stores done outside the object lifetime
 | 
			
		||||
ifeq (ok,$(call detect_js,/minversion gcc 6.0))
 | 
			
		||||
    # keep pre-contruction stores for zero initialization
 | 
			
		||||
    DSE_KEY = -flifetime-dse=1
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq ($(cfg), release)
 | 
			
		||||
        CPLUS_FLAGS = -g -O2
 | 
			
		||||
endif
 | 
			
		||||
ifeq ($(cfg), debug)
 | 
			
		||||
        CPLUS_FLAGS = -g -O0 -DTBB_USE_DEBUG
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
CPLUS_FLAGS += -DUSE_WINTHREAD
 | 
			
		||||
CPLUS_FLAGS += -D_WIN32_WINNT=$(_WIN32_WINNT)
 | 
			
		||||
 | 
			
		||||
# MinGW specific
 | 
			
		||||
CPLUS_FLAGS += -DMINGW_HAS_SECURE_API=1 -D__MSVCRT_VERSION__=0x0700 -msse -mthreads
 | 
			
		||||
 | 
			
		||||
CONLY = gcc
 | 
			
		||||
debugger = gdb
 | 
			
		||||
C_FLAGS = $(CPLUS_FLAGS)
 | 
			
		||||
 | 
			
		||||
ifeq (intel64,$(arch))
 | 
			
		||||
    CPLUS_FLAGS += -m64 $(RTM_KEY)
 | 
			
		||||
    LIB_LINK_FLAGS += -m64
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq (ia32,$(arch))
 | 
			
		||||
    CPLUS_FLAGS += -m32 -march=i686 $(RTM_KEY)
 | 
			
		||||
    LIB_LINK_FLAGS += -m32
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# For examples
 | 
			
		||||
export UNIXMODE = 1
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# End of command lines
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# Setting assembler data
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
ASM=
 | 
			
		||||
ASM_FLAGS=
 | 
			
		||||
TBB_ASM.OBJ=
 | 
			
		||||
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
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
							
								
								
									
										184
									
								
								cs440-acg/ext/tbb/build/windows.icl.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										184
									
								
								cs440-acg/ext/tbb/build/windows.icl.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,184 @@
 | 
			
		||||
# 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 compiler-specific variables.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# Setting default configuration to release.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
cfg ?= release
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# End of setting default configuration to release.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# Setting compiler flags.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
CPLUS ?= icl /nologo $(VCCOMPAT_FLAG)
 | 
			
		||||
LINK_FLAGS = /link /nologo
 | 
			
		||||
LIB_LINK_FLAGS= /link /nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DYNAMICBASE /NXCOMPAT
 | 
			
		||||
 | 
			
		||||
ifeq ($(arch), ia32)
 | 
			
		||||
    LIB_LINK_FLAGS += /SAFESEH
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifneq (,$(stdver))
 | 
			
		||||
    CXX_STD_FLAGS = /Qstd=$(stdver)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# ICC 12.0 and higher provide Intel(R) Cilk(TM) Plus
 | 
			
		||||
ifeq (ok,$(call detect_js,/minversion icl 12))
 | 
			
		||||
    CILK_AVAILABLE = yes
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# ICC 17.0.4 and higher provide support for VS2017
 | 
			
		||||
ifeq (ok,$(call detect_js,/minversion icl 17 4))
 | 
			
		||||
    VS2017_SUPPORT = yes
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# ICC 19.0.4 and higher provide support for VS2019
 | 
			
		||||
ifeq (ok,$(call detect_js,/minversion icl 19 4))
 | 
			
		||||
    VS2019_SUPPORT = yes
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifeq ($(runtime), vc_mt)
 | 
			
		||||
    MS_CRT_KEY = /MT$(if $(findstring debug,$(cfg)),d)
 | 
			
		||||
else
 | 
			
		||||
    MS_CRT_KEY = /MD$(if $(findstring debug,$(cfg)),d)
 | 
			
		||||
endif
 | 
			
		||||
EH_FLAGS = $(if $(no_exceptions),/EHs-,/EHsc /GR)
 | 
			
		||||
 | 
			
		||||
ifeq ($(cfg), release)
 | 
			
		||||
    CPLUS_FLAGS = $(MS_CRT_KEY) /O2 /Zi /Qopt-report-embed- $(EH_FLAGS) /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=$(TBB.LIB)
 | 
			
		||||
    ASM_FLAGS =
 | 
			
		||||
endif
 | 
			
		||||
ifeq ($(cfg), debug)
 | 
			
		||||
    CPLUS_FLAGS = $(MS_CRT_KEY) /Od /Ob0 /Zi $(EH_FLAGS) /Zc:forScope /Zc:wchar_t /DTBB_USE_DEBUG /D__TBB_LIB_NAME=$(TBB.LIB)
 | 
			
		||||
    ASM_FLAGS = /DUSE_FRAME_POINTER
 | 
			
		||||
endif
 | 
			
		||||
CPLUS_FLAGS += /GS
 | 
			
		||||
 | 
			
		||||
COMPILE_ONLY = /c /QMMD
 | 
			
		||||
# PREPROC_ONLY should really use /TP which applies to all files in the command line.
 | 
			
		||||
# But with /TP, ICL does not preprocess *.def files.
 | 
			
		||||
PREPROC_ONLY = /EP /Tp
 | 
			
		||||
INCLUDE_KEY = /I
 | 
			
		||||
DEFINE_KEY = /D
 | 
			
		||||
OUTPUT_KEY = /Fe
 | 
			
		||||
OUTPUTOBJ_KEY = /Fo
 | 
			
		||||
WARNING_AS_ERROR_KEY = /WX
 | 
			
		||||
WARNING_KEY = /W3
 | 
			
		||||
WARNING_SUPPRESS = $(if $(no_exceptions),/wd583)
 | 
			
		||||
DYLIB_KEY = /DLL
 | 
			
		||||
EXPORT_KEY = /DEF:
 | 
			
		||||
NODEFAULTLIB_KEY = /Zl
 | 
			
		||||
NOINTRINSIC_KEY = /Oi-
 | 
			
		||||
BIGOBJ_KEY = /bigobj
 | 
			
		||||
INCLUDE_TEST_HEADERS = /FI$(tbb_root)/src/test/harness_preload.h
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ifneq (,$(codecov))
 | 
			
		||||
    CPLUS_FLAGS += /Qprof-genx
 | 
			
		||||
else
 | 
			
		||||
    CPLUS_FLAGS += /DDO_ITT_NOTIFY
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
OPENMP_FLAG = /Qopenmp
 | 
			
		||||
CPLUS_FLAGS += /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE \
 | 
			
		||||
               /D_WIN32_WINNT=$(_WIN32_WINNT)
 | 
			
		||||
 | 
			
		||||
ifeq ($(runtime),vc8)
 | 
			
		||||
    CPLUS_FLAGS += /D_USE_RTM_VERSION
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
C_FLAGS = $(subst $(EH_FLAGS),,$(CPLUS_FLAGS))
 | 
			
		||||
 | 
			
		||||
VCVERSION:=$(runtime)
 | 
			
		||||
VCCOMPAT_FLAG ?= $(if $(findstring vc7.1, $(VCVERSION)),/Qvc7.1)
 | 
			
		||||
ifeq ($(VCCOMPAT_FLAG),)
 | 
			
		||||
        VCCOMPAT_FLAG := $(if $(findstring vc8, $(VCVERSION)),/Qvc8)
 | 
			
		||||
endif
 | 
			
		||||
ifeq ($(VCCOMPAT_FLAG),)
 | 
			
		||||
        VCCOMPAT_FLAG := $(if $(findstring vc_mt, $(VCVERSION)),/Qvc14)
 | 
			
		||||
endif
 | 
			
		||||
ifeq ($(VCCOMPAT_FLAG),)
 | 
			
		||||
        VCCOMPAT_FLAG := $(if $(findstring vc9, $(VCVERSION)),/Qvc9)
 | 
			
		||||
endif
 | 
			
		||||
ifeq ($(VCCOMPAT_FLAG),)
 | 
			
		||||
        VCCOMPAT_FLAG := $(if $(findstring vc10, $(VCVERSION)),/Qvc10)
 | 
			
		||||
endif
 | 
			
		||||
ifeq ($(VCCOMPAT_FLAG),)
 | 
			
		||||
        VCCOMPAT_FLAG := $(if $(findstring vc11, $(VCVERSION)),/Qvc11)
 | 
			
		||||
endif
 | 
			
		||||
ifeq ($(VCCOMPAT_FLAG),)
 | 
			
		||||
        VCCOMPAT_FLAG := $(if $(findstring vc12, $(VCVERSION)),/Qvc12)
 | 
			
		||||
endif
 | 
			
		||||
ifeq ($(VCCOMPAT_FLAG),)
 | 
			
		||||
    VCCOMPAT_FLAG := $(if $(findstring vc14, $(VCVERSION)),/Qvc14)
 | 
			
		||||
    ifeq ($(VS2017_SUPPORT),yes)
 | 
			
		||||
        ifneq (,$(findstring vc14.1, $(VCVERSION)))
 | 
			
		||||
            VCCOMPAT_FLAG := /Qvc14.1
 | 
			
		||||
        endif
 | 
			
		||||
    endif
 | 
			
		||||
    ifeq ($(VS2019_SUPPORT),yes)
 | 
			
		||||
        ifneq (,$(findstring vc14.2, $(VCVERSION)))
 | 
			
		||||
            VCCOMPAT_FLAG := /Qvc14.2
 | 
			
		||||
        endif
 | 
			
		||||
    endif
 | 
			
		||||
endif
 | 
			
		||||
ifeq ($(VCCOMPAT_FLAG),)
 | 
			
		||||
        $(error VC version not detected correctly: $(VCVERSION) )
 | 
			
		||||
endif
 | 
			
		||||
export VCCOMPAT_FLAG
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# End of setting compiler flags.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# Setting assembler data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
ASSEMBLY_SOURCE=$(arch)-masm
 | 
			
		||||
ifeq (intel64,$(arch))
 | 
			
		||||
    ASM=ml64 /nologo
 | 
			
		||||
    ASM_FLAGS += /DEM64T=1 /c /Zi
 | 
			
		||||
    TBB_ASM.OBJ = atomic_support.obj intel64_misc.obj itsx.obj
 | 
			
		||||
    MALLOC_ASM.OBJ = atomic_support.obj
 | 
			
		||||
else
 | 
			
		||||
    ASM=ml /nologo
 | 
			
		||||
    ASM_FLAGS += /c /coff /Zi /safeseh
 | 
			
		||||
    TBB_ASM.OBJ = atomic_support.obj lock_byte.obj itsx.obj
 | 
			
		||||
endif
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# End of setting assembler data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# Setting tbbmalloc data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
M_CPLUS_FLAGS = $(CPLUS_FLAGS)
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# End of setting tbbmalloc data.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
# End of define compiler-specific variables.
 | 
			
		||||
#------------------------------------------------------------------------------
 | 
			
		||||
							
								
								
									
										118
									
								
								cs440-acg/ext/tbb/build/windows.inc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										118
									
								
								cs440-acg/ext/tbb/build/windows.inc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,118 @@
 | 
			
		||||
# 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.
 | 
			
		||||
 | 
			
		||||
export SHELL = cmd
 | 
			
		||||
 | 
			
		||||
ifdef tbb_build_dir
 | 
			
		||||
  test_dir:=$(tbb_build_dir)
 | 
			
		||||
else
 | 
			
		||||
  test_dir:=.
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
# A convenience wrapper for calls to detect.js.
 | 
			
		||||
# $(1) is the full command line for the script, e.g. /minversion icl 12
 | 
			
		||||
detect_js = $(shell cmd /C "cscript /nologo /E:jscript $(tbb_root)/build/detect.js $(1)")
 | 
			
		||||
 | 
			
		||||
# TODO give an error if archs doesn't match
 | 
			
		||||
ifndef arch
 | 
			
		||||
  export arch:=$(call detect_js, /arch $(compiler))
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
ifndef runtime
 | 
			
		||||
  export runtime:=$(call detect_js, /runtime $(compiler))
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
native_compiler := cl
 | 
			
		||||
export compiler ?= cl
 | 
			
		||||
debugger ?= devenv /debugexe
 | 
			
		||||
 | 
			
		||||
CMD=cmd /C
 | 
			
		||||
CWD=$(shell cmd /C echo %CD%)
 | 
			
		||||
RM=cmd /C del /Q /F
 | 
			
		||||
RD=cmd /C rmdir
 | 
			
		||||
MD=cmd /c mkdir
 | 
			
		||||
SLASH=\\
 | 
			
		||||
NUL = nul
 | 
			
		||||
 | 
			
		||||
AR=lib
 | 
			
		||||
AR_OUTPUT_KEY=/out:
 | 
			
		||||
AR_FLAGS=/nologo /nodefaultlib
 | 
			
		||||
 | 
			
		||||
OBJ = obj
 | 
			
		||||
DLL = dll
 | 
			
		||||
LIBEXT = lib
 | 
			
		||||
ASMEXT = asm
 | 
			
		||||
 | 
			
		||||
def_prefix = $(if $(findstring intel64,$(arch)),win64,win32)
 | 
			
		||||
 | 
			
		||||
# Target Windows version. Do not increase beyond 0x0502 without prior discussion!
 | 
			
		||||
# Used as the value for macro definition option in windows.cl.inc etc.
 | 
			
		||||
# For tests, we need at least Windows XP SP2 for sake of enabling stack backtraces.
 | 
			
		||||
ifeq (1,$(tbb_cpf))
 | 
			
		||||
_WIN32_WINNT=0x0600
 | 
			
		||||
else
 | 
			
		||||
_WIN32_WINNT=0x0502
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
TBB.LST = $(tbb_root)/src/tbb/$(def_prefix)-tbb-export.lst
 | 
			
		||||
TBB.DEF = $(TBB.LST:.lst=.def)
 | 
			
		||||
TBB.DLL = tbb$(CPF_SUFFIX)$(DEBUG_SUFFIX).$(DLL)
 | 
			
		||||
TBB.LIB = tbb$(CPF_SUFFIX)$(DEBUG_SUFFIX).$(LIBEXT)
 | 
			
		||||
TBB.RES = tbb_resource.res
 | 
			
		||||
# On Windows, we use #pragma comment to set the proper TBB lib to link with.
 | 
			
		||||
# But for cross-configuration testing, need to link explicitly.
 | 
			
		||||
# Tests use this variable to detect dependency on TBB binary, so have to be non-empty.
 | 
			
		||||
LINK_TBB.LIB = $(if $(crosstest),$(TBB.LIB),$(DEFINE_KEY)__TBB_IMPLICITLY_LINKED)
 | 
			
		||||
TBB.MANIFEST =
 | 
			
		||||
ifneq ($(filter vc8 vc9,$(runtime)),)
 | 
			
		||||
    TBB.MANIFEST = tbbmanifest.exe.manifest
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
TBBBIND.DEF = $(tbb_root)/src/tbb/$(def_prefix)-tbbbind-export.def
 | 
			
		||||
TBBBIND.DLL = tbbbind$(DEBUG_SUFFIX).$(DLL)
 | 
			
		||||
TBBBIND.LIB = tbbbind$(DEBUG_SUFFIX).$(LIBEXT)
 | 
			
		||||
TBBBIND.RES = tbbbind.res
 | 
			
		||||
LINK_TBBBIND.LIB = $(TBBBIND.LIB)
 | 
			
		||||
HWLOC.LIB = libhwloc.$(LIBEXT)
 | 
			
		||||
 | 
			
		||||
MALLOC.DEF = $(MALLOC_ROOT)/$(def_prefix)-tbbmalloc-export.def
 | 
			
		||||
MALLOC.DLL = tbbmalloc$(DEBUG_SUFFIX).$(DLL)
 | 
			
		||||
MALLOC.LIB = tbbmalloc$(DEBUG_SUFFIX).$(LIBEXT)
 | 
			
		||||
MALLOC.RES = tbbmalloc.res
 | 
			
		||||
MALLOC.MANIFEST =
 | 
			
		||||
ifneq ($(filter vc8 vc9,$(runtime)),)
 | 
			
		||||
MALLOC.MANIFEST = tbbmanifest.exe.manifest
 | 
			
		||||
endif
 | 
			
		||||
LINK_MALLOC.LIB = $(MALLOC.LIB)
 | 
			
		||||
 | 
			
		||||
MALLOCPROXY.DLL = tbbmalloc_proxy$(DEBUG_SUFFIX).$(DLL)
 | 
			
		||||
MALLOCPROXY.LIB = tbbmalloc_proxy$(DEBUG_SUFFIX).$(LIBEXT)
 | 
			
		||||
LINK_MALLOCPROXY.LIB = $(MALLOCPROXY.LIB)
 | 
			
		||||
 | 
			
		||||
PROXY.LIB = tbbproxy$(DEBUG_SUFFIX).$(LIBEXT)
 | 
			
		||||
 | 
			
		||||
RML.DEF = $(RML_SERVER_ROOT)/$(def_prefix)-rml-export.def
 | 
			
		||||
RML.DLL = irml$(DEBUG_SUFFIX).$(DLL)
 | 
			
		||||
RML.LIB = irml$(DEBUG_SUFFIX).$(LIBEXT)
 | 
			
		||||
RML.RES = irml.res
 | 
			
		||||
ifneq ($(filter vc8 vc9,$(runtime)),)
 | 
			
		||||
RML.MANIFEST = tbbmanifest.exe.manifest
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
MAKE_VERSIONS = cmd /C cscript /nologo /E:jscript $(subst \,/,$(tbb_root))/build/version_info_windows.js $(compiler) $(arch) $(subst \,/,"$(VERSION_FLAGS)") > version_string.ver
 | 
			
		||||
MAKE_TBBVARS  = cmd /C "$(subst /,\,$(tbb_root))\build\generate_tbbvars.bat"
 | 
			
		||||
 | 
			
		||||
TEST_LAUNCHER = $(subst /,\,$(tbb_root))\build\test_launcher.bat $(largs)
 | 
			
		||||
 | 
			
		||||
OPENCL.LIB = OpenCL.$(LIBEXT)
 | 
			
		||||
		Reference in New Issue
	
	Block a user