mirror of
git://nv-tegra.nvidia.com/tegra/nv-sci-src/nvsci_samples.git
synced 2025-12-22 09:21:21 +03:00
8193be73ce0a488f62034cb87083cdf09f52cd5d - event_sample_app/block_pool.c a0bd135d707994a41ed3a4234b5f875a268fed4d - event_sample_app/Makefile 44f6de348f8bdd5cb584b3e8cc4b05e9482dddd2 - event_sample_app/event_loop.h 6ff0f1c2d7ef2e2fa9ece6fdc850b58b87207526 - event_sample_app/block_returnsync.c 1158201e78094e9e866fa99095c9ffc2ec9f5a27 - event_sample_app/block_limiter.c f5e2aea98ba9264ee1068a700222dff8d5d5c7a4 - event_sample_app/block_c2c.c ef057870dade9af70656b37340e9bcad35d49380 - event_sample_app/block_multicast.c 641e3634da873970b574b23a1024b2e7155b88ff - event_sample_app/block_consumer_uc1.c ced622a41d1a48dcb23e6a1a02ae9640ef9b837c - event_sample_app/util.h 3a1013021a572887303fb6db245b5b01fe07e9a0 - event_sample_app/block_producer_uc1.c dac99c442185b020fbdae07bfc1e7df78343eb83 - event_sample_app/block_info.h b5dd68bec3ae6f9049aad1cb5a86c3db4af02e17 - event_sample_app/block_presentsync.c e0861e9fe5d160d47d758464146d7192f9c70a5f - event_sample_app/util.c d7e42e2b6088ff4596abc7256eb018d757a4021e - event_sample_app/usecase1.h 65ffe5af6ae6bc0418f348167c473849d4697e47 - event_sample_app/block_ipc.c b52e34443ac441a9df48029de944aa0a50d1b101 - event_sample_app/event_loop_service.c 5001f036389a4f7952cb4974dd3323908208ca30 - event_sample_app/event_loop_threads.c a71ed037f9d77d0944f40f54cf25db8180d007e2 - event_sample_app/block_queue.c d6bbd17599543f1760d87851150a12a2a842a24d - event_sample_app/block_common.c 40f949c4c37ab4aa4a84182b345f3de6fceab39b - event_sample_app/main.c 458833ab233a725c067bf9b1fc60ef39872eee80 - rawstream/Makefile 1fbb82e2281bb2e168c87fd20903bbed898ca160 - rawstream/rawstream_cuda.c e26c09f1ad1a3a7d2c29dae1b38d3fd90c23af6e - rawstream/rawstream_consumer.c 2bed038ca070aa5dccd6b672a98f093340e829bb - rawstream/rawstream_producer.c 3df4e5c00a3dc002ee9877e282bd28ffa87fa6f0 - rawstream/rawstream.h d5ffeef3c7ad2af6f6f31385db7917b5ef9a7438 - rawstream/rawstream_ipc_linux.c f28c1cd5fe26b6dc5930d5556b54364c9b91767c - rawstream/rawstream_main.c Change-Id: I938f32e9d8445019e4585b3076bc6cac860f8a0f
141 lines
3.9 KiB
Makefile
141 lines
3.9 KiB
Makefile
# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved.
|
|
#
|
|
# NVIDIA Corporation and its licensors retain all intellectual property
|
|
# and proprietary rights in and to this software, related documentation
|
|
# and any modifications thereto. Any use, reproduction, disclosure or
|
|
# distribution of this software and related documentation without an express
|
|
# license agreement from NVIDIA Corporation is strictly prohibited.
|
|
#
|
|
|
|
# Location of common libraries
|
|
LIB_DIR = /usr/lib/aarch64-linux-gnu
|
|
# NOTE: This directory PATH will be moved from "tegra" to "nvidia".
|
|
TEGRA_LIB_DIR ?= /usr/lib/aarch64-linux-gnu/tegra
|
|
|
|
# Location of the CUDA Toolkit
|
|
CUDA_PATH ?= /usr/local/cuda
|
|
|
|
# Location of NVSCI header
|
|
NVSCI_HEADER_DIR ?= /usr/include/nvsci_headers
|
|
NVSCI_LIB_DIR = $(TEGRA_LIB_DIR)
|
|
|
|
GCC ?= g++
|
|
NVCC := $(CUDA_PATH)/bin/nvcc -ccbin $(GCC)
|
|
|
|
# internal flags
|
|
NVCCFLAGS :=
|
|
CCFLAGS :=
|
|
LDFLAGS :=
|
|
|
|
# Extra user flags
|
|
EXTRA_NVCCFLAGS ?=
|
|
EXTRA_LDFLAGS ?=
|
|
EXTRA_CCFLAGS ?=
|
|
|
|
override abi := aarch64
|
|
LDFLAGS += --dynamic-linker=/lib/ld-linux-aarch64.so.1
|
|
|
|
# Debug build flags
|
|
dbg = 0
|
|
ifeq ($(dbg),1)
|
|
NVCCFLAGS += -g -G
|
|
TARGET := debug
|
|
else
|
|
TARGET := release
|
|
endif
|
|
|
|
ALL_CCFLAGS :=
|
|
ALL_CCFLAGS += $(NVCCFLAGS)
|
|
ALL_CCFLAGS += $(EXTRA_NVCCFLAGS)
|
|
ALL_CCFLAGS += $(addprefix -Xcompiler ,$(CCFLAGS))
|
|
ALL_CCFLAGS += $(addprefix -Xcompiler ,$(EXTRA_CCFLAGS))
|
|
|
|
ALL_LDFLAGS :=
|
|
ALL_LDFLAGS += $(ALL_CCFLAGS)
|
|
ALL_LDFLAGS += $(addprefix -Xlinker ,$(LDFLAGS))
|
|
ALL_LDFLAGS += $(addprefix -Xlinker ,$(EXTRA_LDFLAGS))
|
|
|
|
################################################################################
|
|
|
|
# Common includes and paths
|
|
INCLUDES := -I./
|
|
LIBRARIES := -L$(LIB_DIR)
|
|
|
|
CUDA_SEARCH_PATH ?= $(CUDA_PATH)/lib64/stubs
|
|
CUDA_SEARCH_PATH += $(CUDA_PATH)/lib/stubs
|
|
CUDA_SEARCH_PATH += $(CUDA_PATH)/targets/aarch64-linux/lib/stubs
|
|
|
|
CUDALIB ?= $(shell find -L $(CUDA_SEARCH_PATH) -maxdepth 1 -name libcuda.so 2> /dev/null)
|
|
ifeq ("$(CUDALIB)","")
|
|
$(error ERROR - libcuda.so not found, CUDA Driver is not installed or CUDA_PATH is not correctly set.)
|
|
else
|
|
CUDALIB := $(shell echo $(CUDALIB) | sed "s/ .*//" | sed "s/\/libcuda.so//" )
|
|
LIBRARIES += -L$(CUDALIB) -lcuda -lrt
|
|
endif
|
|
|
|
# Includes and paths for NVSCI libraries
|
|
NVSCIBUFHEADER := $(shell find -L $(NVSCI_HEADER_DIR) -name nvscibuf.h -print 2>/dev/null)
|
|
NVSCISYNCHEADER := $(shell find -L $(NVSCI_HEADER_DIR) -name nvscisync.h -print 2>/dev/null)
|
|
NVSCIIPCHEADER := $(shell find -L $(NVSCI_HEADER_DIR) -name nvsciipc.h -print 2>/dev/null)
|
|
|
|
ifeq ("$(NVSCIBUFHEADER)","")
|
|
$(error ERROR - nvscibuf.h not found in $(NVSCI_HEADER_DIR))
|
|
endif
|
|
ifeq ("$(NVSCISYNCHEADER)","")
|
|
$(error ERROR - nvscisync.h not found in $(NVSCI_HEADER_DIR))
|
|
endif
|
|
ifeq ("$(NVSCIIPCHEADER)","")
|
|
$(error ERROR - nvsciipc.h not found in $(NVSCI_HEADER_DIR))
|
|
endif
|
|
|
|
INCLUDES += -I$(NVSCI_HEADER_DIR)
|
|
LIBRARIES += -L$(NVSCI_LIB_DIR) -lnvscibuf -lnvscisync -lnvscievent -lnvsciipc -lnvscistream
|
|
|
|
ALL_CCFLAGS += --std=c++11 --threads 0
|
|
|
|
|
|
# CUDA code generation flags
|
|
# Gencode arguments
|
|
SMS ?= 53 61 70 72 75 80 86 87
|
|
|
|
ifeq ($(GENCODE_FLAGS),)
|
|
# Generate SASS code for each SM architecture listed in $(SMS)
|
|
$(foreach sm,$(SMS),$(eval GENCODE_FLAGS += -gencode arch=compute_$(sm),code=sm_$(sm)))
|
|
|
|
# Generate PTX code from the highest SM architecture in $(SMS) to guarantee forward-compatibility
|
|
HIGHEST_SM := $(lastword $(sort $(SMS)))
|
|
ifneq ($(HIGHEST_SM),)
|
|
GENCODE_FLAGS += -gencode arch=compute_$(HIGHEST_SM),code=compute_$(HIGHEST_SM)
|
|
endif
|
|
endif
|
|
|
|
################################################################################
|
|
# Target rules
|
|
OUTPUT := rawstream
|
|
|
|
all: build
|
|
|
|
build: $(OUTPUT)
|
|
|
|
OBJ := rawstream_consumer.o
|
|
OBJ += rawstream_cuda.o
|
|
OBJ += rawstream_ipc_linux.o
|
|
OBJ += rawstream_main.o
|
|
OBJ += rawstream_producer.o
|
|
|
|
%.o: %.c
|
|
$(NVCC) $(INCLUDES) $(ALL_CCFLAGS) $(GENCODE_FLAGS) -o $@ -c $<
|
|
|
|
$(OUTPUT): $(OBJ)
|
|
$(NVCC) $(ALL_LDFLAGS) $(GENCODE_FLAGS) -o $@ $+ $(LIBRARIES)
|
|
|
|
run: build
|
|
$(OUTPUT)
|
|
|
|
testrun: build
|
|
|
|
clean:
|
|
rm -f $(OBJ) $(OUTPUT)
|
|
|
|
clobber: clean
|