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 | |