#!/usr/bin/make -f

include /usr/share/dpkg/pkg-info.mk

DEB_REVISION := $(shell echo '$(DEB_VERSION)' | sed s/\+.*$$// | grep -Eo '[0-9]+$$')
VERSION := $(shell echo '$(DEB_VERSION_UPSTREAM)' | sed s/\+.*$$//)

target = net461

framework_version = 4.5

FrameworkPathOverride = /usr/lib/mono/$(framework_version);/usr/lib/mono/$(framework_version)/Facades
export FrameworkPathOverride
export PAKET_SKIP_RESTORE_TARGETS=true

assemblies = Numerics Data/Text Data/Matlab

options = /p:Configuration=Release \
          /p:StrongName=True \
	  /p:FileVersion=$(VERSION).$(DEB_REVISION)

ifneq ($(PRODUCT_VERSION),)
  options += /p:InformationalVersion=$(PRODUCT_VERSION)
endif

%:
	dh $@ --with cli

override_dh_auto_clean:
	dh_auto_clean
	for assembly in $(assemblies); do \
		rm -rf src/$$assembly/bin src/$$assembly/obj; \
	done

override_dh_auto_build:
	for assembly in $(assemblies); do \
		msbuild /p:TargetFramework=$(target) $(options) /t:restore src/$$assembly; \
		msbuild /p:TargetFramework=$(target) $(options) src/$$assembly; \
	done

override_dh_install:
	for assembly in $(assemblies); do \
		gacutil /i src/$$assembly/bin/Release/$(target)/*.dll /f \
		    /root debian/tmp/usr/lib /package $(framework_version); \
		dh_install /usr/lib/mono/gac; \
		gacfile=$$(find debian/tmp/usr/lib/mono/gac -name '*.dll' | sed -e 's#^debian/tmp##'); \
		#dh_link $$gacfile /usr/lib/mono/$(framework_version)/$$assembly.dll; \
	done

override_dh_clideps:
	dh_clideps --exclude-moduleref=libdl.so \
		--exclude-moduleref=MathNET.Numerics.OpenBLAS.dll \
		--exclude-moduleref=MathNet.Numerics.MKL.dll \
		--exclude-moduleref=MathNet.Numerics.CUDA.dll
