#!/usr/bin/make -f

export LC_ALL=C

include /usr/share/dpkg/default.mk

TZGEN := $(CURDIR)/tzgen

ICU_FILES := metaZones timezoneTypes windowsZones zoneinfo64

%:
	dh $@

override_dh_auto_build-indep:
	# Generate a tzdata.zi and leapseconds file
	$(MAKE) AWK=gawk BACKWARD="backward" PACKRATDATA=backzone PACKRATLIST=zone.tab VERSION_DEPS= tzdata.zi leapseconds

	# Build the timezone data
	/usr/sbin/zic -b fat -d $(TZGEN) -L /dev/null tzdata.zi
	/usr/sbin/zic -b fat -d $(TZGEN)/right -L leapseconds tzdata.zi

	# Replace hardlinks by symlinks
	grep '^L ' $(CURDIR)/tzdata.zi | while read L target name ; do \
		absolute_name="$(TZGEN)/$$name"; \
		relative_target=$$(realpath -m -s --relative-to="$${absolute_name%/*}" "$(TZGEN)/$$target"); \
		ln -sf "$$relative_target" "$(TZGEN)/$$name" ; \
		ln -sf "$$relative_target" "$(TZGEN)/right/$$name" ; \
	done

	# Generate a posixrules file
	ln -s America/New_York $(TZGEN)/posixrules

	debian/generate_debconf_templates -d "$(TZGEN)" > debian/tzdata.templates
	debconf-updatepo

	mkdir -p le be
	for icu in $(ICU_FILES); do \
	    genrb --formatVersion 2 debian/icu/$$icu.txt; \
	    icupkg -tl $$icu.res le/$$icu.res; \
	    icupkg -tb $$icu.res be/$$icu.res; \
	done

# The upstream tests are related to the sources. Just skip it.
override_dh_auto_test:
	debian/test_timezone_conversions -z "$(TZGEN)"
	PYTHONTZPATH="$(TZGEN)" debian/tests/python
	debian/check_translations debian/po/*.po

override_dh_auto_install:
	mkdir -p debian/tmp/usr/share/zoneinfo
	cp -r tzgen/* debian/tmp/usr/share/zoneinfo

override_dh_auto_clean:
	-rm -rf $(TZGEN) *.res le/ be/
	dh_auto_clean

override_dh_installchangelogs:
	dh_installchangelogs NEWS

update-icu:
	mkdir -p debian/icu/
	cd debian/icu/; \
	for icu in $(ICU_FILES); do \
	    wget https://raw.githubusercontent.com/unicode-org/icu-data/main/tzdata/icunew/$(DEB_VERSION_UPSTREAM)/44/$$icu.txt -O $$icu.txt; \
	done
