#!/usr/bin/make -f

export DH_VERBOSE = 1

export DEB_CFLAGS_MAINT_APPEND = $(CFLAGS_BUILDING)
export DEB_CXXFLAGS_MAINT_APPEND = $(CFLAGS_BUILDING)

# https://bugs-devel.debian.org/cgi-bin/bugreport.cgi?bug=1065439
# filtering out flags that are not supported
CXXFLAGS := $(subst -fstack-protector-strong,-Xarch_host -fstack-protector-strong,$(CXXFLAGS))
CXXFLAGS := $(subst -fcf-protection,-Xarch_host -fcf-protection,$(CXXFLAGS))

PKG_NAME=$(DEB_SOURCE)

ROCM_VERSION=$(shell cat /opt/REVYOS_ROCM_VERSION)
ROCM_PATH=/opt/rocm-$(ROCM_VERSION)

MAKEOPTS="-j$$(($$(nproc) / 4))"

TOP_DIR := $(CURDIR)
DEB_SRC_PATH := $(TOP_DIR)
DEB_BUILD_PATH := $(TOP_DIR)/build-rocm
DEB_INST_DIR := $(TOP_DIR)/debian/tmp

REVYOS_ROCM_CMAKE_PARAMS := -S $(DEB_SRC_PATH) -B $(DEB_BUILD_PATH)
REVYOS_ROCM_CMAKE_PARAMS += -DCMAKE_INSTALL_PREFIX=$(ROCM_PATH)
REVYOS_ROCM_CMAKE_PARAMS += -DCMAKE_C_COMPILER=$(ROCM_PATH)/bin/hipcc
REVYOS_ROCM_CMAKE_PARAMS += -DCMAKE_CXX_COMPILER=$(ROCM_PATH)/bin/hipcc
#REVYOS_ROCM_CMAKE_PARAMS += -DCMAKE_LINKER=$(ROCM_PATH)/bin/ld.lld
#REVYOS_ROCM_CMAKE_PARAMS += -DCMAKE_AR=$(ROCM_PATH)/bin/llvm-ar
#REVYOS_ROCM_CMAKE_PARAMS += -DCMAKE_RANLIB=$(ROCM_PATH)/bin/llvm-ranlib
REVYOS_ROCM_CMAKE_PARAMS += -DCMAKE_BUILD_TYPE=Release
REVYOS_ROCM_CMAKE_PARAMS += -DCMAKE_VERBOSE_MAKEFILE=TRUE
REVYOS_ROCM_CMAKE_PARAMS += -DCMAKE_PREFIX_PATH="${ROCM_PATH};${ROCM_PATH}/share/rocm/cmake/;${ROCM_PATH}/share/rocmcmakebuildtools/cmake"

ROCM_MATH_CMAKE_PARAMS := -DROCM_SYMLINK_LIBS=OFF
ROCM_MATH_CMAKE_PARAMS += -DROCM_DISABLE_LDCONFIG=ON
ROCM_MATH_CMAKE_PARAMS += -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=FALSE
ROCM_MATH_CMAKE_PARAMS += -DBUILD_FILE_REORG_BACKWARD_COMPATIBILITY=OFF

# GPU_TARGETS="gfx908:xnack-;gfx90a:xnack-;gfx90a:xnack+;gfx940;gfx941;gfx942;gfx1030;gfx1100"

ROCSPARSE_CMAKE_PARAMS := -DCMAKE_MODULE_PATH="$(ROCM_PATH)/lib/cmake/hip;$(ROCM_PATH)/hip/cmake"
ROCSPARSE_CMAKE_PARAMS += -DGPU_TARGETS="gfx1100"
ROCSPARSE_CMAKE_PARAMS += -DBUILD_CLIENTS_SAMPLES=OFF
ROCSPARSE_CMAKE_PARAMS += -DBUILD_CLIENTS_TESTS=OFF
ROCSPARSE_CMAKE_PARAMS += -DBUILD_WITH_OFFLOAD_COMPRESS=ON
ROCSPARSE_CMAKE_PARAMS += -DBUILD_CLIENTS_BENCHMARKS=OFF

%:
	dh $@

override_dh_auto_configure:
	cmake $(REVYOS_ROCM_CMAKE_PARAMS) $(ROCM_MATH_CMAKE_PARAMS) $(ROCSPARSE_CMAKE_PARAMS)

override_dh_auto_build:
	cmake --build $(DEB_BUILD_PATH) -- $(MAKEOPTS)

override_dh_auto_install:
	DESTDIR=$(DEB_INST_DIR)/ cmake --build $(DEB_BUILD_PATH) -- $(MAKEOPTS) install

override_dh_install:
	sed -i "s,@ROCM_VERSION@,${ROCM_VERSION},g" debian/*.install
	dh_install

override_dh_dwz:
	:
