#!/usr/bin/make -f
export CXX=hipcc
#export CXX=clang++
#export CC=clang
export DEB_BUILD_MAINT_OPTIONS = hardening=+all optimize=-lto
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all optimize=-O2
#export CFLAGS = -O2 -g
#export CXXFLAGS = -O2 -g
export DEB_CXXFLAGS_MAINT_PREPEND = -gz -Wno-deprecated-builtins -DROCPRIM_USE_ARCH_CONVERSION
export VERBOSE=1
#export PATH:=/usr/lib/llvm-21/bin:$(PATH)
#export AMD_LOG_LEVEL=4

# filter incompatible options from affecting device code
CXXFLAGS := $(subst -fstack-protector-strong,-Xarch_host -fstack-protector-strong,$(CXXFLAGS))
CXXFLAGS := $(subst -fcf-protection,-Xarch_host -fcf-protection,$(CXXFLAGS))

ifdef CCACHE_DIR
CMAKE_CACHE_FLAGS = \
	-D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
endif

FORTIFLAG1=-DCMAKE_C_FLAGS="-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1" \
	-DCMAKE_CXX_FLAGS="-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1"
FORTIFLAG=-DCMAKE_C_FLAGS="-U_FORTIFY_SOURCE" \
	-DCMAKE_CXX_FLAGS="-U_FORTIFY_SOURCE"

GPUFLAG=-DAMDGPU_TARGETS="$(shell rocm-target-arch --sep ';')"
#GPUFLAG=-DAMDGPU_TARGETS="gfx803;gfx900;gfx906;gfx908;gfx90a;gfx1010;gfx1030;gfx1100;gfx1101;gfx1102"

BT=Release
#BT=RelWithDebInfo

CMAKE_FLAGS = \
	-DCMAKE_BUILD_TYPE=$(BT) \
	-DCMAKE_SKIP_RPATH=ON \
	$(CMAKE_CACHE_FLAGS) \
	$(GPUFLAG) \
	$(FORTIFLAG0) \
	-DBUILD_FILE_REORG_BACKWARD_COMPATIBILITY=OFF \
	-DUSE_SYSTEM_SQLITE=ON

%:
	dh $@ -Scmake

override_dh_auto_configure-arch:
	dh_auto_configure -- $(CMAKE_FLAGS) -DBUILD_TEST=ON

override_dh_auto_configure-indep:
	dh_auto_configure -- $(CMAKE_FLAGS)

override_dh_auto_test-arch:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	set -e \
	; if [ -r /dev/kfd ] \
	; then dh_auto_test --no-parallel -- \
	; else echo "W: /dev/kfd unreadable: no available AMD GPU." \
	;      echo "W: tests skipped." \
	; fi
endif

override_dh_auto_test-indep:
	:

execute_before_dh_install-arch:
	:

override_dh_auto_install-indep:
	dh_auto_install --destdir=debian/tmp

# dwz doesn't fully support DWARF-5 yet, see #1016936
override_dh_dwz:
	:
