#!/usr/bin/make -f


# Get version from changelog as well as lsb_release
# to compute unique build version (useful for repo mirroring systems doing file pooling)
PKG_VERSION  := $(shell dpkg-parsechangelog | grep -E '^Version:' | cut -d' ' -f2)
DIST_NAME    := $(shell lsb_release -si)
DIST_RELEASE := $(shell lsb_release -sc)
DIST_VERSION := $(shell lsb_release -sr)
PKG_VERSION_TAG := $(PKG_VERSION)+$(DIST_NAME).$(DIST_RELEASE).$(DIST_VERSION)


# List of CUDA level according to CUDA version
# https://developer.nvidia.com/cuda-gpus
CUDA_VERSION := $(shell dpkg-query -W -f='$${Version}' nvidia-cuda-toolkit | cut -d. -f1,2)
# Compute level below 50 is not supported:
# lyra2/cuda_lyra2Z.cu(880): error: identifier "DMatrix" is undefined
ifeq ($(CUDA_VERSION),9.0)
  CUDA_CAP   := 50 52 53 60 61 70
else ifeq ($(CUDA_VERSION),8.0)
  CUDA_CAP   := 50 52 53 60 61
else ifeq ($(CUDA_VERSION),7.5)
  CUDA_CAP   := 50 52 53
else
  $(error Unsupported CUDA $(CUDA_VERSION). Please fix debian/rules)
endif
NVCC_ARCH := $(foreach CAP,$(CUDA_CAP),-gencode=arch=compute_$(CAP),code=\\\"sm_$(CAP),compute_$(CAP)\\\")


# Inspired from configure.sh
CXXFLAGS    := -O3 -D_REENTRANT -falign-functions=16 -falign-jumps=16 -falign-labels=16
CUDA_CFLAGS := -O3 -lineno -Xcompiler -Wall -D_FORCE_INLINES
# Thanks to CUDA, I need really old GCC
CC          := /usr/bin/gcc-4.9
CXX         := /usr/bin/g++-4.9
# C++11 compat fix for Ubuntu Xenial only
ifeq ($(DIST_RELEASE),xenial)
  CUDA_CFLAGS += -D_GLIBCXX_USE_CXX11_ABI=0
endif


%:
	dh $@ --with autoreconf --parallel

override_dh_auto_configure:
	dh_auto_configure -- CXXFLAGS="$(CXXFLAGS)" \
	                     CFLAGS="$(CXXFLAGS)" \
	                     CC="$(CC)" \
	                     CXX="$(CXX)" \
                             CUDA_CFLAGS="$(CUDA_CFLAGS)"

override_dh_auto_build:
	dh_auto_build -- nvcc_ARCH="$(NVCC_ARCH)"

override_dh_installsystemd:
	dh_installsystemd --name=ccminer

override_dh_installinit:
	dh_installinit --name=ccminer

override_dh_systemd_enable:
	dh_systemd_enable --no-enable

override_dh_systemd_start:
	dh_systemd_start --no-start

override_dh_gencontrol:
	dh_gencontrol -- -v"$(PKG_VERSION_TAG)"
