1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
#!/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-core = $(pkg)-core
pkg-extra = $(pkg)-extra
pkg-ui-core = $(pkg)-ui-core
pkg-ui-extra = $(pkg)-ui-extra
pkg-udeb-di = $(pkg)-hinted-udeb
pkg-nothinted = $(pkg)-unhinted
pkg-udeb-extra = $(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 FAQ-KR.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
weights = Black ExtraBold Bold SemiBold Neutral Medium Light ExtraLight Thin
weights := $(weights) $(patsubst %,%Italic,$(weights))
weights := $(weights) $(foreach distortion,ExtraCondensed Condensed SemiCondensed,\
$(patsubst %,$(distortion)%,$(weights)))
weights := $(patsubst Neutral,Regular,$(weights))
weights := $(subst Neutral,,$(weights))
weights-core = Bold BoldItalic Regular Italic
weights-extra = $(filter-out $(weights-core),$(weights))
filter-core = %-Bold.ttf %-BoldItalic.ttf %-Italic.ttf %-Regular.ttf
filter-extra = $(foreach weight,$(weights-extra),%-$(weight).ttf)
filter-core-ui = $(subst %,%UI,$(filter-core))
filter-extra-ui = $(subst %,%UI,$(filter-extra))
_filters = $(filter $(filter-$(1)),\
$(if $(2),\
$(filter-out $(filter-$(2)),$(3)),\
$(3)))
fonts-hinted-all = $(wildcard hinted/Noto*.ttf)
fonts-unhinted-all = $(wildcard unhinted/Noto*.ttf)
fonts-ui-core = $(call _filters,core-ui,,$(fonts-hinted-all))
fonts-ui-extra = $(call _filters,extra-ui,,$(fonts-hinted-all))
fonts-core = $(call _filters,core,core-ui,$(fonts-hinted-all))
fonts-extra = $(call _filters,extra,extra-ui,$(fonts-hinted-all))
fonts-unhinted = $(filter $(filter-core),$(fonts-unhinted-all))
fonts-croscore = $(wildcard hinted/Arimo*.ttf hinted/Cousine*.ttf hinted/Tinos*.ttf)
fonts-shipped-noto = $(fonts-core) $(fonts-extra)
fonts-shipped-all = $(fonts-shipped-noto) $(fonts-ui-core) $(fonts-ui-extra) $(fonts-croscore) $(fonts-unhinted)
fonts-nothinted = $(filter-out $(subst hinted,unhinted,$(fonts-shipped-all)),$(fonts-unhinted))
fonts-missed = $(filter-out $(notdir $(fonts-shipped-all)),$(notdir $(fonts-hinted-all) $(fonts-unhinted-all)))
$(if $(fonts-missed),$(warning Fonts missed in Debian packaging: $(fonts-missed)))
# use unhinted fonts in udeb, and split by what debian-installer needs
fonts-udeb-di = $(filter unhinted/NotoSerifGujarati-% unhinted/NotoSansSinhala-%,\
$(call _filters,core,core-ui,$(fonts-unhinted-all)))
fonts-udeb-extra = $(call _filters,core,core-ui,$(fonts-unhinted-all))
fonts-scriptcount = $(shell \
otfinfo -s $(fonts-shipped-noto) \
| 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-croscore) = $(fonts-croscore) usr/share/fonts/truetype/croscore/
define _installvar =
DEB_DH_INSTALL_ARGS_$$(pkg-$(1)) = $$(fonts-$(1)) usr/share/fonts/truetype/noto/
endef
$(foreach flavor,core extra ui-core ui-extra udeb-di nothinted udeb-extra,\
$(eval $(call _installvar,$(flavor))))
# install bug-* files into all binary packages
DEB_DH_BUGFILES_ARGS_ALL = --all
# resolve scriptcount and familylist for long descriptions
DEB_DH_GENCONTROL_ARGS_ALL = -- -Vfonts:scriptcount="$(fonts-scriptcount)"
define _listvar =
install/$$(pkg-$(1))::
printf fonts:familylist= \
>> debian/$$(cdbs_curpkg).substvars
otfinfo -a $$(fonts-$(1)) | cut -d: -f2 \
| LC_ALL=C sort -u \
| $$(substvars-list-encode) \
>> debian/$$(cdbs_curpkg).substvars
endef
$(foreach flavor,core extra ui-core ui-extra nothinted,\
$(eval $(call _listvar,$(flavor))))
|