#!/usr/bin/make -f

export DH_VERBOSE = 1
export DOTNET_CLI_TELEMETRY_OPTOUT = 1
export DOTNET_SKIP_FIRST_TIME_EXPERIENCE = 1

# Determine target architecture (supports cross-compilation)
DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)

# Map Debian architecture to .NET Runtime Identifier
ifeq ($(DEB_HOST_ARCH),amd64)
DOTNET_RID = linux-x64
else ifeq ($(DEB_HOST_ARCH),arm64)
DOTNET_RID = linux-arm64
else ifeq ($(DEB_HOST_ARCH),armhf)
DOTNET_RID = linux-arm
else
$(error Unsupported architecture: $(DEB_HOST_ARCH))
endif

# Detect if we're cross-compiling
ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
IS_CROSS = yes
$(info Cross-compiling from $(DEB_BUILD_ARCH) to $(DEB_HOST_ARCH))
$(info Using .NET RID: $(DOTNET_RID))
else
IS_CROSS = no
endif

AARU_VERSION = 6.0.0-alpha.19
NETCORE_TARGET = net10.0

%:
	dh $@ --without autoreconf

override_dh_auto_clean:
	dotnet clean Aaru/Aaru.csproj || true
	dh_auto_clean

override_dh_auto_build:
	cd Aaru && dotnet publish -f $(NETCORE_TARGET) -c Release \
		--self-contained -r $(DOTNET_RID) \
		-p:PublishSingleFile=true \
		-p:IncludeNativeLibrariesForSelfExtract=true \
		-p:EnableCompressionInSingleFile=true

override_dh_auto_install:
	# Install main binary
	install -D -m 0755 Aaru/bin/Release/$(NETCORE_TARGET)/$(DOTNET_RID)/publish/aaru \
		debian/aaru/opt/Aaru/aaru

	# Install documentation
	install -D -m 0644 README.md debian/aaru/opt/Aaru/README.md
	install -D -m 0644 Changelog.md debian/aaru/opt/Aaru/Changelog.md
	install -D -m 0644 CONTRIBUTING.md debian/aaru/opt/Aaru/CONTRIBUTING.md
	install -D -m 0644 LICENSE debian/aaru/opt/Aaru/LICENSE
	install -D -m 0644 LICENSE.MIT debian/aaru/opt/Aaru/LICENSE.MIT
	install -D -m 0644 LICENSE.LGPL debian/aaru/opt/Aaru/LICENSE.LGPL

	# Install MIME type
	install -D -m 0644 Aaru/aaruformat.xml \
		debian/aaru/usr/share/mime/packages/aaruformat.xml

	# Install desktop file
	install -D -m 0644 Aaru/aaru.desktop \
		debian/aaru/usr/share/applications/aaru.desktop

	# Install icons
	install -D -m 0644 icons/32x32/aaru.png \
		debian/aaru/usr/share/icons/hicolor/32x32/apps/aaru.png
	install -D -m 0644 icons/64x64/aaru.png \
		debian/aaru/usr/share/icons/hicolor/64x64/apps/aaru.png
	install -D -m 0644 icons/128x128/aaru.png \
		debian/aaru/usr/share/icons/hicolor/128x128/apps/aaru.png
	install -D -m 0644 icons/256x256/aaru.png \
		debian/aaru/usr/share/icons/hicolor/256x256/apps/aaru.png
	install -D -m 0644 icons/512x512/aaru.png \
		debian/aaru/usr/share/icons/hicolor/512x512/apps/aaru.png

	# Create symlink in /usr/bin
	install -d debian/aaru/usr/bin
	ln -sf /opt/Aaru/aaru debian/aaru/usr/bin/aaru

override_dh_auto_test:
	# Skip tests for now
	true

override_dh_strip:
	# Don't strip .NET binaries
	true

override_dh_makeshlibs:
	# Skip makeshlibs - this is a self-contained .NET app with no shared libraries
	true

override_dh_shlibdeps:
	# Skip shlib deps as this is a self-contained .NET app
	true

