Spaces:
Runtime error
Runtime error
# Copyright 2010-2020 NVIDIA 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. | |
# Makefile for building Thrust unit test driver | |
# Force C++11 mode. NVCC will ignore it if the host compiler doesn't support it. | |
export CXX_STD := c++11 | |
export CCCL_ENABLE_DEPRECATIONS := 1 | |
export VERBOSE := 1 | |
ifndef PROFILE | |
ifdef VULCAN_TOOLKIT_BASE | |
include $(VULCAN_TOOLKIT_BASE)/build/getprofile.mk | |
include $(VULCAN_TOOLKIT_BASE)/build/config/$(PROFILE).mk | |
else | |
include ../build/getprofile.mk | |
include ../build/config/$(PROFILE).mk | |
endif | |
endif | |
SOLNDIR := . | |
ifdef VULCAN_TOOLKIT_BASE | |
include $(VULCAN_TOOLKIT_BASE)/build/config/DetectOS.mk | |
else | |
include ../build/config/DetectOS.mk | |
endif | |
TMP_DIR := built | |
TMP_PREFIX := $(ROOTDIR) | |
TMP_ARCH := $(ARCH)_$(PROFILE)_agnostic | |
THRUST_MKDIR := $(TMP_PREFIX)/$(TMP_DIR)/$(TMP_ARCH)/thrust/mk | |
THRUST_DIR := $(ROOTDIR)/thrust | |
res:=$(shell $(PYTHON) ./generate_mk.py $(THRUST_MKDIR) $(THRUST_DIR)) | |
# Use these environment variables to control what gets built: | |
# | |
# TEST_ALL | |
# TEST_UNITTESTS | |
# TEST_EXAMPLES | |
# TEST_BENCH | |
# TEST_OTHER | |
ifneq ($(TEST_ALL),) | |
override TEST_UNITTESTS := 1 | |
override TEST_EXAMPLES := 1 | |
override TEST_BENCH := 1 | |
override TEST_OTHER := 1 | |
endif | |
ifeq ($(TEST_UNITTESTS)$(TEST_EXAMPLES)$(TEST_BENCH)$(TEST_OTHER),) | |
override TEST_UNITTESTS := 1 | |
override TEST_EXAMPLES := 1 | |
override TEST_BENCH := 1 | |
override TEST_OTHER := 1 | |
endif | |
ifneq ($(TEST_OTHER),) | |
PROJECTS += internal/build/warningstester | |
endif | |
ifneq ($(TEST_BENCH),) | |
PROJECTS += internal/benchmark/bench | |
endif | |
ifneq ($(TEST_UNITTESTS),) | |
# copy existing projects | |
PROJECTS_COPY := $(PROJECTS) | |
# empty PROJECTS | |
PROJECTS := | |
# populate PROJECTS with unit tests. | |
include $(THRUST_MKDIR)/testing.mk | |
# Once PROJECTS is populated with unit tests, re-add the previous projects. | |
PROJECTS += $(PROJECTS_COPY) | |
endif | |
ifneq ($(TEST_EXAMPLES),) | |
# Copy existing projects. | |
PROJECTS_COPY := $(PROJECTS) | |
# Empty PROJECTS. | |
PROJECTS := | |
# Populate PROJECTS with examples. | |
include $(THRUST_MKDIR)/examples.mk | |
# Once PROJECTS is populated with examples, re-add the previous projects. | |
PROJECTS += $(PROJECTS_COPY) | |
endif | |
ifdef VULCAN_TOOLKIT_BASE | |
include $(VULCAN_TOOLKIT_BASE)/build/common.mk | |
else | |
include ../build/common.mk | |
endif | |
ifeq ($(OS), win32) | |
CREATE_DVS_PACKAGE = $(ZIP) -r built/CUDA-thrust-package.zip bin thrust/internal/test thrust/internal/scripts thrust/internal/benchmark thrust/*.trs $(DVS_COMMON_TEST_PACKAGE_FILES) | |
APPEND_H_DVS_PACKAGE = $(ZIP) -rg built/CUDA-thrust-package.zip thrust -9 -i *.h | |
APPEND_INL_DVS_PACKAGE = $(ZIP) -rg built/CUDA-thrust-package.zip thrust -9 -i *.inl | |
APPEND_CUH_DVS_PACKAGE = $(ZIP) -rg built/CUDA-thrust-package.zip thrust -9 -i *.cuh | |
MAKE_DVS_PACKAGE = $(CREATE_DVS_PACKAGE) && $(APPEND_H_DVS_PACKAGE) && $(APPEND_INL_DVS_PACKAGE) && $(APPEND_CUH_DVS_PACKAGE) | |
else | |
CREATE_DVS_PACKAGE = tar -cvh -f built/CUDA-thrust-package.tar bin thrust/internal/test thrust/internal/scripts thrust/internal/benchmark thrust/*.trs $(DVS_COMMON_TEST_PACKAGE_FILES) | |
APPEND_H_DVS_PACKAGE = find -L thrust -name "*.h" | xargs tar rvf built/CUDA-thrust-package.tar | |
APPEND_INL_DVS_PACKAGE = find -L thrust -name "*.inl" | xargs tar rvf built/CUDA-thrust-package.tar | |
APPEND_CUH_DVS_PACKAGE = find -L thrust -name "*.cuh" | xargs tar rvf built/CUDA-thrust-package.tar | |
COMPRESS_DVS_PACKAGE = bzip2 --force built/CUDA-thrust-package.tar | |
MAKE_DVS_PACKAGE = $(CREATE_DVS_PACKAGE) && $(APPEND_H_DVS_PACKAGE) && $(APPEND_INL_DVS_PACKAGE) && $(APPEND_CUH_DVS_PACKAGE) && $(COMPRESS_DVS_PACKAGE) | |
endif | |
COPY_CUB_FOR_PACKAGING = rm -rf cub && cp -r ../cub/cub cub | |
DVS_OPTIONS := | |
ifneq ($(TARGET_ARCH),$(HOST_ARCH)) | |
DVS_OPTIONS += TARGET_ARCH=$(TARGET_ARCH) | |
endif | |
ifeq ($(TARGET_ARCH),ARMv7) | |
DVS_OPTIONS += ABITYPE=$(ABITYPE) | |
endif | |
THRUST_DVS_BUILD = release | |
pack: | |
$(COPY_CUB_FOR_PACKAGING) | |
cd .. && $(MAKE_DVS_PACKAGE) | |
dvs: | |
$(COPY_CUB_FOR_PACKAGING) | |
# Build the CUDA Runtime in GVS, because GVS has no CUDA Runtime component. | |
# This is a temporary workaround until the Tegra team adds a CUDA Runtime | |
# component, which they have promised to do. | |
ifdef GVS | |
$(MAKE) $(DVS_OPTIONS) -s -C ../cuda $(THRUST_DVS_BUILD) | |
endif | |
$(MAKE) $(DVS_OPTIONS) $(THRUST_DVS_BUILD) THRUST_DVS=1 | |
cd .. && $(MAKE_DVS_PACKAGE) | |
dvs_release: | |
$(MAKE) dvs THRUST_DVS_BUILD=release | |
dvs_debug: | |
$(MAKE) dvs THRUST_DVS_BUILD=debug | |
include $(THRUST_MKDIR)/dependencies.mk | |