#!/usr/bin/make -f

include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/rules/upstream-tarball.mk

pkg = $(DEB_SOURCE_PACKAGE)
pkg-mono = $(pkg)-mono
pkg-hinted = $(pkg)-hinted
pkg-hinted-udeb = $(pkg)-hinted-udeb
pkg-unhinted = $(pkg)-unhinted
pkg-unhinted-udeb = $(pkg)-unhinted-udeb
pkg-croscore = fonts-croscore

DEB_UPSTREAM_URL = https://github.com/googlei18n/noto-fonts/archive
DEB_UPSTREAM_PACKAGE = NotoFonts-hinted
DEB_UPSTREAM_TARBALL_SRCDIR = noto-fonts-$(DEB_UPSTREAM_TARBALL_BASENAME)

DEB_UPSTREAM_TARBALL_SRCDIR += $(if \
 $(filter $(DEB_UPSTREAM_PACKAGE)-%,$(DEB_UPSTREAM_TARBALL_BASENAME)),\
  $(error set DEB_UPSTREAM_TARBALL_BASENAME to commit hash))

DEB_INSTALL_DOCS_ALL += README.md FAQ.md NEWS.md

# resolve font facts and encode for control file (see deb-substvars(5) )
substvars-list-encode = perl -0 -F/\\n/ -ane 'print " * ", join("\$${Newline} * ",@F)'

# Generate fonts list
filter-core = %-Bold.ttf %-BoldItalic.ttf %-Italic.ttf %-Regular.ttf
fonts-mono = $(wildcard hinted/NotoMono*.ttf)
fonts-hinted-all = $(filter-out $(fonts-mono),$(wildcard hinted/Noto*.ttf))
fonts-unhinted-all = $(wildcard unhinted/Noto*.ttf)
fonts-hinted = $(filter $(filter-core),$(fonts-hinted-all))
fonts-unhinted = $(filter $(filter-core),$(fonts-unhinted-all))
fonts-croscore = $(wildcard hinted/Arimo*.ttf hinted/Cousine*.ttf hinted/Tinos*.ttf)
fonts-nothinted = $(filter-out $(subst hinted,unhinted,$(fonts-hinted)),$(fonts-unhinted))

# udeb package should contain only what debian-installer needs
fonts-hinted-di = $(filter hinted/NotoSansSinhala-%,$(fonts-hinted))

fonts-scriptcount = $(shell \
 otfinfo -s $(fonts-unhinted) \
 | perl -n \
  -e 's/^.*\t+//;' \
  -e 's, ?(/|Default|<unknown|v\.2|\(.*\)).*,,;' \
  -e 's,^([^/]+)/\1,$1,;' \
  -e '/./ and print;' \
 | sort -u \
 | grep -c .)

# Install fonts
DEB_DH_INSTALL_ARGS_$(pkg-mono) = $(fonts-mono) usr/share/fonts/truetype/noto/
DEB_DH_INSTALL_ARGS_$(pkg-hinted) = $(fonts-hinted) usr/share/fonts/truetype/noto/
DEB_DH_INSTALL_ARGS_$(pkg-hinted-udeb) = $(fonts-hinted-di) usr/share/fonts/truetype/noto/
DEB_DH_INSTALL_ARGS_$(pkg-unhinted) = $(fonts-nothinted) usr/share/fonts/truetype/noto/
DEB_DH_INSTALL_ARGS_$(pkg-unhinted-udeb) = $(fonts-nothinted) usr/share/fonts/truetype/noto/
DEB_DH_INSTALL_ARGS_$(pkg-croscore) = $(fonts-croscore) usr/share/fonts/truetype/croscore/

# install bug-* files into all binary packages
DEB_DH_BUGFILES_ARGS_ALL = --all

$(addprefix install/,$(pkg) $(pkg-hinted) $(pkg-unhinted))::
	echo 'fonts:scriptcount=$(fonts-scriptcount)' \
		>> debian/$(cdbs_curpkg).substvars
install/$(pkg-hinted)::
	printf fonts:familylist= \
		>> debian/$(cdbs_curpkg).substvars
	otfinfo -a $(fonts-hinted) | cut -d: -f2 \
		| LC_ALL=C sort -u \
		| $(substvars-list-encode) \
		>> debian/$(cdbs_curpkg).substvars
install/$(pkg-unhinted)::
	printf fonts:nohintfamilylist= \
		>> debian/$(cdbs_curpkg).substvars
	otfinfo -a $(fonts-nothinted) | cut -d: -f2 \
		| LC_ALL=C sort -u \
		| $(substvars-list-encode) \
		>> debian/$(cdbs_curpkg).substvars
