#!/bin/sh
set -e

CXX=${1:-g++}

AUTOPKGTEST_TMP=${AUTOPKGTEST_TMP:-$(mktemp -d)}

parallel=$(echo " $DEB_BUILD_OPTIONS " | sed -rn 's/.* parallel=([0-9]+) .*/\1/p')

cp -a /usr/share/doc/nvidia-cuda-toolkit/examples $AUTOPKGTEST_TMP
cd $AUTOPKGTEST_TMP/examples

rm -rfv Common/GL

FILTER_OUT=

if [ "$(uname -m)" = "aarch64" ]; then

#nvlink error   : Undefined reference to 'cudaGetParameterBufferV2' in 'cdpQuadtree.o' (target: sm_72)
#nvlink error   : Undefined reference to 'cudaLaunchDeviceV2' in 'cdpQuadtree.o' (target: sm_72)
FILTER_OUT="$FILTER_OUT Samples/cdpQuadtree/Makefile"

#nvlink error   : Undefined reference to 'cudaCGGetIntrinsicHandle' in 'conjugateGradientMultiDeviceCG.o' (target: sm_72)
#nvlink error   : Undefined reference to 'cudaCGSynchronize' in 'conjugateGradientMultiDeviceCG.o' (target: sm_72)
#nvlink error   : Undefined reference to 'cudaCGGetSize' in 'conjugateGradientMultiDeviceCG.o' (target: sm_72)
#nvlink error   : Undefined reference to 'cudaCGGetRank' in 'conjugateGradientMultiDeviceCG.o' (target: sm_72)
FILTER_OUT="$FILTER_OUT Samples/conjugateGradientMultiDeviceCG/Makefile"

fi

if [ "$(uname -m)" = "ppc64le" ]; then

# fatal error: cudaEGL.h: No such file or directory
FILTER_OUT="$FILTER_OUT Samples/EGLStream_CUDA_Interop/Makefile"

fi

make ${parallel:+-j${parallel}} -k \
	HOST_COMPILER="$CXX" \
	DISTRO="ubuntu" \
	EXTRA_NVCCFLAGS="-Wno-deprecated-gpu-targets -Wno-deprecated-declarations" \
	FILTER_OUT="$FILTER_OUT" \
