#!/usr/bin/make -f
export DH_VERBOSE = 1

AOT_SUPPORTED_ARCHS := amd64 arm

# Use DEB_BUILD_OPTIONS's parallel=n option (see Policy 4.9.1)
ifneq (,$(findstring parallel,$(DEB_BUILD_OPTIONS)))
PARALLEL_JOBS := $(shell echo $(DEB_BUILD_OPTIONS) | \
	sed -e 's/.*parallel=\([0-9]\+\).*/\1/')
else
PARALLEL_JOBS := 1
endif

ifeq (amd64,$(DEB_HOST_ARCH_CPU))
BUILD_TYPE += ReleaseX64
BUILD_TYPE_PRODUCT += ProductX64
ARCH += x64
else
ifeq (i386,$(DEB_HOST_ARCH_CPU))
BUILD_TYPE += ReleaseIA32
BUILD_TYPE_PRODUCT += ProductIA32
ARCH += ia32
else
ifeq (arm,$(DEB_HOST_ARCH_CPU))
ifeq ($(DEB_BUILD_ARCH_CPU),$(DEB_HOST_ARCH_CPU))
BUILD_TYPE += ReleaseARM
BUILD_TYPE_PRODUCT += ProductARM
else
BUILD_TYPE += ReleaseXARM
BUILD_TYPE_PRODUCT += ProductXARM
endif
ARCH += arm
else
$(error unsupported target arch '$(DEB_HOST_ARCH_CPU)')
endif
endif
endif

# Verbose?
ifeq (1,$(DH_VERBOSE))
BUILD_ARGS += V=1
endif

%:
	dh $@

override_dh_auto_clean:
	echo $(DEB_BUILD_OPTIONS)
	rm -fr dart/out dart/Makefile
	find . -name *.tmp -execdir rm -f {} \;
	find . -name *.pyc -execdir rm -f {} \;
	find . -name *.mk -execdir rm -f {} \;
	find . -name *.Makefile -execdir rm -f {} \;

override_dh_auto_configure:
	python3 dart/tools/generate_buildfiles.py

override_dh_auto_build:
	cd dart; \
	python3 tools/build.py -v -m release -a $(ARCH) $(TOOLCHAIN) create_sdk; \
	cd ..

# Building the Dart SDK will already strip all binaries.
override_dh_strip:

# This override allows us to ignore spurious missing library errors when
# cross-compiling.
override_dh_shlibdeps:
	dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info

override_dh_auto_install:
	mkdir -p debian/tmp/out
	cp -R dart/out/$(BUILD_TYPE)/dart-sdk debian/tmp/out
	mv debian/tmp/out/dart-sdk debian/tmp/out/dart
	dh_install
	dh_link
