|
| 1 | +# Copyright 1993-2010 NVIDIA Corporation. All rights reserved. |
| 2 | +# |
| 3 | +# NOTICE TO USER: |
| 4 | +# |
| 5 | +# This source code is subject to NVIDIA ownership rights under U.S. and |
| 6 | +# international Copyright laws. |
| 7 | +# |
| 8 | +# This software and the information contained herein is being provided |
| 9 | +# under the terms and conditions of a Source Code License Agreement. |
| 10 | +# |
| 11 | +# NVIDIA MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS SOURCE |
| 12 | +# CODE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR |
| 13 | +# IMPLIED WARRANTY OF ANY KIND. NVIDIA DISCLAIMS ALL WARRANTIES WITH |
| 14 | +# REGARD TO THIS SOURCE CODE, INCLUDING ALL IMPLIED WARRANTIES OF |
| 15 | +# MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. |
| 16 | +# IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL, |
| 17 | +# OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS |
| 18 | +# OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE |
| 19 | +# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE |
| 20 | +# OR PERFORMANCE OF THIS SOURCE CODE. |
| 21 | +# |
| 22 | +# U.S. Government End Users. This source code is a "commercial item" as |
| 23 | +# that term is defined at 48 C.F.R. 2.101 (OCT 1995), consisting of |
| 24 | +# "commercial computer software" and "commercial computer software |
| 25 | +# documentation" as such terms are used in 48 C.F.R. 12.212 (SEPT 1995) |
| 26 | +# and is provided to the U.S. Government only as a commercial end item. |
| 27 | +# Consistent with 48 C.F.R.12.212 and 48 C.F.R. 227.7202-1 through |
| 28 | +# 227.7202-4 (JUNE 1995), all U.S. Government End Users acquire the |
| 29 | +# source code with only those rights set forth herein. |
| 30 | + |
| 31 | +# Makefile for building Thrust unit test driver |
| 32 | + |
| 33 | + |
| 34 | +ifndef PROFILE |
| 35 | +ifdef VULCAN_TOOLKIT_BASE |
| 36 | +include $(VULCAN_TOOLKIT_BASE)/build/getprofile.mk |
| 37 | +include $(VULCAN_TOOLKIT_BASE)/build/config/$(PROFILE).mk |
| 38 | +else |
| 39 | +include ../build/getprofile.mk |
| 40 | +include ../build/config/$(PROFILE).mk |
| 41 | +endif |
| 42 | +endif |
| 43 | + |
| 44 | +SOLNDIR := . |
| 45 | + |
| 46 | +# Possible bug when compiling Thrust v.1.7.0 with VC8 so use at least VC9 |
| 47 | +#ifndef USEVC10 |
| 48 | +#export USEVC9= 1 |
| 49 | +#endif |
| 50 | + |
| 51 | +ifdef VULCAN_TOOLKIT_BASE |
| 52 | +include $(VULCAN_TOOLKIT_BASE)/build/config/DetectOS.mk |
| 53 | +else |
| 54 | +include ../build/config/DetectOS.mk |
| 55 | +endif |
| 56 | + |
| 57 | +ifeq ($(OS),win32) |
| 58 | + export I_AM_SLOPPY := 1 |
| 59 | +endif |
| 60 | + |
| 61 | +TMP_DIR := built |
| 62 | +TMP_PREFIX := $(ROOTDIR) |
| 63 | +TMP_ARCH := $(ARCH)_$(PROFILE)_agnostic |
| 64 | +THRUST_MKDIR := $(TMP_PREFIX)/$(TMP_DIR)/$(TMP_ARCH)/thrust/mk |
| 65 | +THRUST_DIR := $(ROOTDIR)/thrust |
| 66 | +# TODO: Refactor //sw/gpgpu/build and devise a solution in a form of |
| 67 | +# include mk file that defines BUILT_ROOTDIR |
| 68 | +res:=$(shell $(PYTHON) generate_mk.py $(THRUST_MKDIR) $(THRUST_DIR)) |
| 69 | + |
| 70 | +## Generate makefiles |
| 71 | +# |
| 72 | + |
| 73 | +# Use these environment variables to control what gets built |
| 74 | +# TEST_ALL |
| 75 | +# TEST_UNITTESTS |
| 76 | +# TEST_EXAMPLES |
| 77 | +# TEST_BENCH |
| 78 | +# TEST_OTHER |
| 79 | + |
| 80 | +ifneq ($(TEST_ALL),) |
| 81 | + override TEST_UNITTESTS := 1 |
| 82 | + override TEST_EXAMPLES := 1 |
| 83 | + override TEST_BENCH := 1 |
| 84 | + override TEST_OTHER := 1 |
| 85 | +endif |
| 86 | + |
| 87 | +ifneq ($(TEST_EXAMPLES_CUDA)$(TEST_EXAMPLES_THRUST),) |
| 88 | + override TEST_EXAMPLES=1 |
| 89 | +endif |
| 90 | + |
| 91 | +ifeq ($(TEST_UNITTESTS)$(TEST_EXAMPLES)$(TEST_BENCH)$(TEST_OTHER),) |
| 92 | + override TEST_UNITTESTS := 1 |
| 93 | + override TEST_EXAMPLES := 1 |
| 94 | + override TEST_BENCH := 1 |
| 95 | + override TEST_OTHER := 1 |
| 96 | +endif |
| 97 | + |
| 98 | +filter_substr = $(foreach v,$2,$(if $(findstring $1,$v),$v)) |
| 99 | +filterout_substr = $(foreach v,$2,$(if $(findstring $1,$v),,$v)) |
| 100 | + |
| 101 | + |
| 102 | +ifneq ($(TEST_UNITTESTS),) |
| 103 | + # copy existing projects |
| 104 | + PROJECTS_COPY := $(PROJECTS) |
| 105 | + # empty PROJECTS |
| 106 | + PROJECTS := |
| 107 | + # populate PROJECTS with unit tests |
| 108 | + include $(THRUST_MKDIR)/testing.mk |
| 109 | + |
| 110 | + ifdef ERIS_TEST_LEVELS |
| 111 | + |
| 112 | + ERIS_PROJECTS := |
| 113 | + # an empty list for L0 |
| 114 | + ifneq ($(findstring L0,$(ERIS_TEST_LEVELS)),) |
| 115 | + endif |
| 116 | + |
| 117 | + # list of test for L1 |
| 118 | + ifneq ($(findstring L1,$(ERIS_TEST_LEVELS)),) |
| 119 | + ERIS_PROJECTS += $(filter %testframework,$(PROJECTS)) |
| 120 | + ERIS_PROJECTS += $(filter %thrust.test.adjacent_difference,$(PROJECTS)) |
| 121 | + ERIS_PROJECTS += $(filter %thrust.test.cuda.merge_sort,$(PROJECTS)) |
| 122 | + ERIS_PROJECTS += $(filter %thrust.test.cuda.pinned_allocator,$(PROJECTS)) |
| 123 | + ERIS_PROJECTS += $(filter %thrust.test.cuda.radix_sort_by_key,$(PROJECTS)) |
| 124 | + ERIS_PROJECTS += $(filter %thrust.test.cuda.radix_sort,$(PROJECTS)) |
| 125 | + ERIS_PROJECTS += $(filter %thrust.test.cuda.reduce_intervals,$(PROJECTS)) |
| 126 | + ERIS_PROJECTS += $(filter %thrust.test.binary_search,$(PROJECTS)) |
| 127 | + ERIS_PROJECTS += $(filter %thrust.test.binary_search_descending,$(PROJECTS)) |
| 128 | + ERIS_PROJECTS += $(filter %thrust.test.binary_search_vector,$(PROJECTS)) |
| 129 | + ERIS_PROJECTS += $(filter %thrust.test.binary_search_vector_descending,$(PROJECTS)) |
| 130 | + ERIS_PROJECTS += $(filter %thrust.test.copy,$(PROJECTS)) |
| 131 | + ERIS_PROJECTS += $(filter %thrust.test.count,$(PROJECTS)) |
| 132 | + ERIS_PROJECTS += $(filter %thrust.test.equal,$(PROJECTS)) |
| 133 | + ERIS_PROJECTS += $(filter %thrust.test.fill,$(PROJECTS)) |
| 134 | + ERIS_PROJECTS += $(filter %thrust.test.find,$(PROJECTS)) |
| 135 | + ERIS_PROJECTS += $(filter %thrust.test.for_each,$(PROJECTS)) |
| 136 | + ERIS_PROJECTS += $(filter %thrust.test.gather,$(PROJECTS)) |
| 137 | + ERIS_PROJECTS += $(filter %thrust.test.generate,$(PROJECTS)) |
| 138 | + ERIS_PROJECTS += $(filter %thrust.test.inner_product,$(PROJECTS)) |
| 139 | + ERIS_PROJECTS += $(filter %thrust.test.is_partitioned,$(PROJECTS)) |
| 140 | + ERIS_PROJECTS += $(filter %thrust.test.is_sorted,$(PROJECTS)) |
| 141 | + ERIS_PROJECTS += $(filter %thrust.test.is_sorted_until,$(PROJECTS)) |
| 142 | + ERIS_PROJECTS += $(filter %thrust.test.max_element,$(PROJECTS)) |
| 143 | + ERIS_PROJECTS += $(filter %thrust.test.merge_by_key,$(PROJECTS)) |
| 144 | + ERIS_PROJECTS += $(filter %thrust.test.merge,$(PROJECTS)) |
| 145 | + ERIS_PROJECTS += $(filter %thrust.test.min_element,$(PROJECTS)) |
| 146 | + ERIS_PROJECTS += $(filter %thrust.test.minmax_element,$(PROJECTS)) |
| 147 | + ERIS_PROJECTS += $(filter %thrust.test.mismatch,$(PROJECTS)) |
| 148 | + ERIS_PROJECTS += $(filter %thrust.test.partition,$(PROJECTS)) |
| 149 | + ERIS_PROJECTS += $(filter %thrust.test.partition_point,$(PROJECTS)) |
| 150 | + ERIS_PROJECTS += $(filter %thrust.test.permutation_iterator,$(PROJECTS)) |
| 151 | + ERIS_PROJECTS += $(filter %thrust.test.reduce_by_key,$(PROJECTS)) |
| 152 | + ERIS_PROJECTS += $(filter %thrust.test.reduce,$(PROJECTS)) |
| 153 | + ERIS_PROJECTS += $(filter %thrust.test.remove,$(PROJECTS)) |
| 154 | + ERIS_PROJECTS += $(filter %thrust.test.replace,$(PROJECTS)) |
| 155 | + ERIS_PROJECTS += $(filter %thrust.test.reverse,$(PROJECTS)) |
| 156 | + ERIS_PROJECTS += $(filter %thrust.test.reverse_iterator,$(PROJECTS)) |
| 157 | + ERIS_PROJECTS += $(filter %thrust.test.scan_by_key,$(PROJECTS)) |
| 158 | + ERIS_PROJECTS += $(filter %thrust.test.scan,$(PROJECTS)) |
| 159 | + ERIS_PROJECTS += $(filter %thrust.test.scatter,$(PROJECTS)) |
| 160 | + ERIS_PROJECTS += $(filter %thrust.test.sequence,$(PROJECTS)) |
| 161 | + ERIS_PROJECTS += $(filter %thrust.test.set_difference_by_key,$(PROJECTS)) |
| 162 | + ERIS_PROJECTS += $(filter %thrust.test.set_difference_by_key_descending,$(PROJECTS)) |
| 163 | + ERIS_PROJECTS += $(filter %thrust.test.set_difference,$(PROJECTS)) |
| 164 | + ERIS_PROJECTS += $(filter %thrust.test.set_difference_descending,$(PROJECTS)) |
| 165 | + ERIS_PROJECTS += $(filter %thrust.test.set_intersection_by_key,$(PROJECTS)) |
| 166 | + ERIS_PROJECTS += $(filter %thrust.test.set_intersection_by_key_descending,$(PROJECTS)) |
| 167 | + ERIS_PROJECTS += $(filter %thrust.test.set_intersection,$(PROJECTS)) |
| 168 | + ERIS_PROJECTS += $(filter %thrust.test.set_intersection_descending,$(PROJECTS)) |
| 169 | + ERIS_PROJECTS += $(filter %thrust.test.set_symmetric_difference_by_key,$(PROJECTS)) |
| 170 | + ERIS_PROJECTS += $(filter %thrust.test.set_symmetric_difference_by_key_descending,$(PROJECTS)) |
| 171 | + ERIS_PROJECTS += $(filter %thrust.test.set_symmetric_difference,$(PROJECTS)) |
| 172 | + ERIS_PROJECTS += $(filter %thrust.test.set_symmetric_difference_descending,$(PROJECTS)) |
| 173 | + ERIS_PROJECTS += $(filter %thrust.test.set_union_by_key,$(PROJECTS)) |
| 174 | + ERIS_PROJECTS += $(filter %thrust.test.set_union_by_key_descending,$(PROJECTS)) |
| 175 | + ERIS_PROJECTS += $(filter %thrust.test.set_union,$(PROJECTS)) |
| 176 | + ERIS_PROJECTS += $(filter %thrust.test.set_union_descending,$(PROJECTS)) |
| 177 | + ERIS_PROJECTS += $(filter %thrust.test.sort_by_key,$(PROJECTS)) |
| 178 | + ERIS_PROJECTS += $(filter %thrust.test.sort,$(PROJECTS)) |
| 179 | + ERIS_PROJECTS += $(filter %thrust.test.stable_sort_by_key,$(PROJECTS)) |
| 180 | + ERIS_PROJECTS += $(filter %thrust.test.stable_sort,$(PROJECTS)) |
| 181 | + ERIS_PROJECTS += $(filter %thrust.test.swap_ranges,$(PROJECTS)) |
| 182 | + ERIS_PROJECTS += $(filter %thrust.test.tabulate,$(PROJECTS)) |
| 183 | + ERIS_PROJECTS += $(filter %thrust.test.transform,$(PROJECTS)) |
| 184 | + ERIS_PROJECTS += $(filter %thrust.test.transform_reduce,$(PROJECTS)) |
| 185 | + ERIS_PROJECTS += $(filter %thrust.test.transform_scan,$(PROJECTS)) |
| 186 | + ERIS_PROJECTS += $(filter %thrust.test.uninitialized_copy,$(PROJECTS)) |
| 187 | + ERIS_PROJECTS += $(filter %thrust.test.unique_by_key,$(PROJECTS)) |
| 188 | + ERIS_PROJECTS += $(filter %thrust.test.unique,$(PROJECTS)) |
| 189 | + ERIS_PROJECTS += $(filter %thrust.test.vector_insert,$(PROJECTS)) |
| 190 | + endif |
| 191 | + |
| 192 | + # a full unit test suite for L2 |
| 193 | + ifneq ($(findstring L2,$(ERIS_TEST_LEVELS)),) |
| 194 | + ERIS_PROJECTS := $(PROJECTS) |
| 195 | + endif |
| 196 | + |
| 197 | + PROJECTS := $(ERIS_PROJECTS) |
| 198 | + |
| 199 | + endif # ERIS_TEST_LEVELS |
| 200 | + |
| 201 | + ifdef THRUST_DVS |
| 202 | + ifndef THRUST_DVS_NIGHTLY |
| 203 | + PRJ := $(filter %testframework,$(PROJECTS)) |
| 204 | + PRJ += $(filter %test.adjacent_difference,$(PROJECTS)) |
| 205 | + PRJ += $(filter %test.cuda.arch,$(PROJECTS)) |
| 206 | + PRJ += $(filter %test.cuda.radix_sort,$(PROJECTS)) |
| 207 | + PRJ += $(filter %test.cuda.radix_sort_by_key,$(PROJECTS)) |
| 208 | + PRJ += $(filter %test.binary_search_vector,$(PROJECTS)) |
| 209 | + PRJ += $(filter %test.copy,$(PROJECTS)) |
| 210 | + PRJ += $(filter %test.count,$(PROJECTS)) |
| 211 | + PRJ += $(filter %test.fill,$(PROJECTS)) |
| 212 | + PRJ += $(filter %test.for_each,$(PROJECTS)) |
| 213 | + PRJ += $(filter %test.gather,$(PROJECTS)) |
| 214 | + PRJ += $(filter %test.generate,$(PROJECTS)) |
| 215 | + PRJ += $(filter %test.inner_product,$(PROJECTS)) |
| 216 | + PRJ += $(filter %test.logical,$(PROJECTS)) |
| 217 | + PRJ += $(filter %test.max_element,$(PROJECTS)) |
| 218 | + PRJ += $(filter %test.merge,$(PROJECTS)) |
| 219 | + PRJ += $(filter %test.merge_key_value,$(PROJECTS)) |
| 220 | + PRJ += $(filter %test.min_element,$(PROJECTS)) |
| 221 | + PRJ += $(filter %test.minmax_element,$(PROJECTS)) |
| 222 | + PRJ += $(filter %test.partition,$(PROJECTS)) |
| 223 | + PRJ += $(filter %test.partition_point,$(PROJECTS)) |
| 224 | + PRJ += $(filter %test.reduce,$(PROJECTS)) |
| 225 | + PRJ += $(filter %test.reduce_by_key,$(PROJECTS)) |
| 226 | + PRJ += $(filter %test.remove,$(PROJECTS)) |
| 227 | + PRJ += $(filter %test.replace,$(PROJECTS)) |
| 228 | + PRJ += $(filter %test.reverse,$(PROJECTS)) |
| 229 | + PRJ += $(filter %test.set_intersection,$(PROJECTS)) |
| 230 | + PRJ += $(filter %test.set_symmetric_difference,$(PROJECTS)) |
| 231 | + PRJ += $(filter %test.set_union,$(PROJECTS)) |
| 232 | + PRJ += $(filter %test.transform,$(PROJECTS)) |
| 233 | + PRJ += $(filter %test.transform_scan,$(PROJECTS)) |
| 234 | + PRJ += $(filter %test.type_traits,$(PROJECTS)) |
| 235 | + PRJ += $(filter %test.unique,$(PROJECTS)) |
| 236 | + PRJ += $(filter %test.unique_by_key,$(PROJECTS)) |
| 237 | + PRJ += $(filter %test.vector_cpp_subset,$(PROJECTS)) |
| 238 | + PROJECTS := $(PRJ) |
| 239 | + endif |
| 240 | + endif # THRUST_DVS |
| 241 | + |
| 242 | + # once PROJECTS is populated with unit tests extend it it with previous projects |
| 243 | + PROJECTS += $(PROJECTS_COPY) |
| 244 | + |
| 245 | + # Filter out tests that are known to fail to compile |
| 246 | + ifeq ($(TARGET_OS), QNX) |
| 247 | + PROJECTS := $(filter-out %thrust.test.complex_transform, $(PROJECTS)) |
| 248 | + endif |
| 249 | +endif |
| 250 | + |
| 251 | +ifneq ($(TEST_OTHER),) |
| 252 | + PROJECTS += internal/build/warningstester |
| 253 | +endif |
| 254 | + |
| 255 | +ifneq ($(TEST_BENCH),) |
| 256 | + PROJECTS += internal/benchmark/bench |
| 257 | +endif |
| 258 | + |
| 259 | +ifneq ($(TEST_EXAMPLES),) |
| 260 | + PROJECTS_COPY := $(PROJECTS) |
| 261 | + PROJECTS := |
| 262 | + include $(THRUST_MKDIR)/examples.mk |
| 263 | + |
| 264 | + EXAMPLES_CUDA := $(call filter_substr,example.cuda,$(PROJECTS)) |
| 265 | + EXAMPLES_THRUST := $(call filterout_substr,example.cuda,$(PROJECTS)) |
| 266 | + |
| 267 | + ifneq ($(TEST_EXAMPLES_CUDA),) |
| 268 | + PROJECTS := $(PROJECTS_COPY) $(EXAMPLES_CUDA) |
| 269 | + else ifneq ($(TEST_EXAMPLES_THRUST),) |
| 270 | + PROJECTS := $(PROJECTS_COPY) $(EXAMPLES_THRUST) |
| 271 | + else |
| 272 | + PROJECTS := $(PROJECTS_COPY) $(EXAMPLES_CUDA) $(EXAMPLES_THRUST) |
| 273 | + endif |
| 274 | + |
| 275 | + # custom_temporary_allocation only works with gcc version 4.4 and higher |
| 276 | + ifneq ($(OS), win32) |
| 277 | + ifneq ($(shell expr "`$(CC) -dumpversion`" \< "4.4"), 0) |
| 278 | + PROJECTS := $(filter-out %example.cuda.custom_temporary_allocation, $(PROJECTS)) |
| 279 | + endif |
| 280 | + endif |
| 281 | + |
| 282 | + # fallback_allocator TDRs on windows, thrust_nightly doesn't have a per-OS waive mechanism at the moment |
| 283 | + # so don't build it |
| 284 | + ifeq ($(OS), win32) |
| 285 | + PROJECTS := $(filter-out %example.cuda.fallback_allocator, $(PROJECTS)) |
| 286 | + endif |
| 287 | +endif |
| 288 | + |
| 289 | +ifneq ($(OPENMP),) |
| 290 | + PROJECTS += internal/build/unittesterOMP |
| 291 | +endif |
| 292 | + |
| 293 | +ifdef ERIS_TEST_LEVELS |
| 294 | + PROJECTS += internal/build/eris_testsuites |
| 295 | +endif |
| 296 | + |
| 297 | +ifdef VULCAN_TOOLKIT_BASE |
| 298 | +include $(VULCAN_TOOLKIT_BASE)/build/common.mk |
| 299 | +else |
| 300 | +include ../build/common.mk |
| 301 | +endif |
| 302 | + |
| 303 | +.PHONY: docs copy_doc |
| 304 | +docs: |
| 305 | + $(MAKE) -f internal/doc/pdf.mk ROOTDIR=$(ROOTDIR) docs |
| 306 | + |
| 307 | +copy_docs: |
| 308 | + $(MAKE) -f internal/doc/pdf.mk ROOTDIR=$(ROOTDIR) copy_docs |
| 309 | + |
| 310 | +docs.clean: |
| 311 | + $(MAKE) -f internal/doc/pdf.mk ROOTDIR=$(ROOTDIR) clean |
| 312 | + |
| 313 | +ifeq ($(OS), win32) |
| 314 | +MAKE_DVS_PACKAGE = $(ZIP) -r built/CUDA-thrust-package.zip bin thrust/internal/test $(DVS_COMMON_TEST_PACKAGE_FILES) |
| 315 | +else |
| 316 | +MAKE_DVS_PACKAGE = tar -cvj -f built/CUDA-thrust-package.tar.bz2 bin thrust/internal/test $(DVS_COMMON_TEST_PACKAGE_FILES) |
| 317 | +endif |
| 318 | + |
| 319 | +DVS_OPTIONS := |
| 320 | + |
| 321 | +ifneq ($(TARGET_ARCH),$(HOST_ARCH)) |
| 322 | + DVS_OPTIONS += TARGET_ARCH=$(TARGET_ARCH) |
| 323 | +endif |
| 324 | +ifeq ($(TARGET_ARCH),ARMv7) |
| 325 | + DVS_OPTIONS += ABITYPE=$(ABITYPE) |
| 326 | +endif |
| 327 | + |
| 328 | +THRUST_DVS_BUILD = release |
| 329 | + |
| 330 | +dvs: |
| 331 | + $(MAKE) $(DVS_OPTIONS) -s -C ../cuda $(THRUST_DVS_BUILD) |
| 332 | + $(MAKE) $(DVS_OPTIONS) $(THRUST_DVS_BUILD) THRUST_DVS=1 |
| 333 | + cd .. && $(MAKE_DVS_PACKAGE) |
| 334 | + |
| 335 | +dvs_release: |
| 336 | + $(MAKE) dvs THRUST_DVS_BUILD=release |
| 337 | + |
| 338 | +dvs_nightly dvs_nightly_release: |
| 339 | + $(MAKE) dvs_release THRUST_DVS_NIGHTLY=1 |
| 340 | + |
| 341 | +dvs_debug: |
| 342 | + $(MAKE) dvs THRUST_DVS_BUILD=debug |
| 343 | + |
| 344 | +dvs_nightly_debug: |
| 345 | + $(MAKE) dvs_debug THRUST_DVS_NIGHTLY=1 |
| 346 | + |
| 347 | + |
| 348 | + |
| 349 | +include $(THRUST_MKDIR)/dependencies.mk |
| 350 | + |
| 351 | +ifdef ERIS_TEST_LEVELS |
| 352 | +DEPS := $(filter-out eris_testsuites,$(notdir $(PROJECTS))) |
| 353 | +eris_testsuites: $(DEPS) |
| 354 | +endif |
| 355 | + |
0 commit comments