diff options
author | Rasmus Andersson <rasmus@notion.se> | 2018-09-03 22:55:49 +0300 |
---|---|---|
committer | Rasmus Andersson <rasmus@notion.se> | 2018-09-03 22:55:49 +0300 |
commit | c833e252c925e8dd68108660710ca835d95daa6f (patch) | |
tree | 6b2e28264ed45efd7f054e453b622098d0d875b8 /Makefile | |
parent | 8c1a4c181ef12000179dfec541f1af87e9b03122 (diff) | |
download | inter-c833e252c925e8dd68108660710ca835d95daa6f.tar.xz |
Major overhaul, moving from UFO2 to Glyphs and UFO3, plus a brand new and much simpler fontbuild
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 117 |
1 files changed, 67 insertions, 50 deletions
@@ -10,71 +10,88 @@ # install Build all (web, ttf and otf) and install. Mac-only for now. # dist Create a new release distribution. Does everything. # -all: all_ttf all_otf - $(MAKE) all_web -j +all: all_fonts +all_unhinted: all_ttf all_otf all_web +all_hinted: all_ttf_hinted all_web_hinted -all_hinted: all_ttf all_ttf_hinted all_otf - $(MAKE) all_web_hinted -j +VERSION := $(shell cat version.txt) -VERSION := $(shell misc/version.py) +export PATH := $(PWD)/build/venv/bin:$(PATH) # generated.make is automatically generated by init.sh and defines depenencies for # all styles and alias targets include build/etc/generated.make -res_files := src/fontbuild.cfg src/diacritics.txt src/glyphlist.txt \ - src/features.fea src/glyphorder.txt -# UFO -> TTF & OTF (note that UFO deps are defined by generated.make) -build/tmp/InterUITTF/InterUI-%.ttf: $(res_files) - misc/ufocompile --otf $* +# TTF -> WOFF2 +build/%.woff2: build/%.ttf + woff2_compress "$<" + +# TTF -> WOFF +build/%.woff: build/%.ttf + ttf2woff -O -t woff "$<" "$@" + +# TTF -> EOT (disabled) +# build/%.eot: build/%.ttf +# ttf2eot "$<" > "$@" + + +# UFO -> OTF, TTF +build/unhinted/Inter-UI-Regular.%: master_ufo_regular + misc/fontbuild compile -o $@ src/Inter-UI-Regular.ufo + +build/unhinted/Inter-UI-Black.%: master_ufo_black + misc/fontbuild compile -o $@ src/Inter-UI-Black.ufo + +build/unhinted/Inter-UI-%.otf: build/ufo/Inter-UI-%.ufo + misc/fontbuild compile -o $@ $< -build/tmp/InterUIOTF/InterUI-%.otf: build/tmp/InterUITTF/InterUI-%.ttf $(res_files) - @true +build/unhinted/Inter-UI-%.ttf: build/ufo/Inter-UI-%.ufo + misc/fontbuild compile -o $@ $< -# tmp/ttf -> dist -build/dist-unhinted/Inter-UI-%.ttf: build/tmp/InterUITTF/InterUI-%.ttf - @mkdir -p build/dist-unhinted - cp -a "$<" "$@" -# tmp/otf -> dist -build/dist-unhinted/Inter-UI-%.otf: build/tmp/InterUIOTF/InterUI-%.otf - @mkdir -p build/dist-unhinted - cp -a "$<" "$@" +# designspace <- glyphs file +src/Inter-UI.designspace: src/Inter-UI.glyphs + misc/fontbuild glyphsync $< -# autohint -build/dist-hinted/Inter-UI-%.ttf: build/dist-unhinted/Inter-UI-%.ttf - @mkdir -p build/dist-hinted - ttfautohint \ +# instance UFOs <- master UFOs +build/ufo/Inter-UI-%.ufo: master_ufo_regular master_ufo_black + misc/fontbuild instancegen src/Inter-UI.designspace $* + +# master UFOs <- designspace +master_ufo_regular: src/Inter-UI.designspace $(Regular_ufo_d) +master_ufo_black: src/Inter-UI.designspace $(Black_ufo_d) + +# Note: The seemingly convoluted dependency graph above is required to +# make sure that glyphsync and instancegen are not run in parallel. + +.PHONY: master_ufo_regular master_ufo_black + + +# hinted TTF files via autohint +build/hinted/%.ttf: build/unhinted/%.ttf + @mkdir -p build/hinted + @echo ttfautohint "$<" "$@" + @ttfautohint \ --hinting-limit=256 \ --hinting-range-min=8 \ --hinting-range-max=64 \ --fallback-stem-width=256 \ - --strong-stem-width=D \ --no-info \ --verbose \ "$<" "$@" -# TTF -> WOFF2 -build/%.woff2: build/%.ttf - woff2_compress "$<" - -# TTF -> WOFF -build/%.woff: build/%.ttf - ttf2woff -O -t woff "$<" "$@" - -# TTF -> EOT (disabled) -# build/%.eot: build/%.ttf -# ttf2eot "$<" > "$@" +# test runs all tests +# Note: all_check is generated by init.sh and runs "fontbuild checkfont" +# on all otf and ttf files. +test: all_check -test: all_otf - @misc/check-font.py build/dist-unhinted/*.otf ZIP_FILE_DIST := build/release/Inter-UI-${VERSION}.zip ZIP_FILE_DEV := build/release/Inter-UI-${VERSION}-$(shell git rev-parse --short=10 HEAD).zip # zip intermediate -build/.zip.zip: all_otf +build/.zip.zip: all_otf all_ttf $(MAKE) all_web all_web_hinted -j @rm -rf build/.zip @rm -f build/.zip.zip @@ -84,15 +101,15 @@ build/.zip.zip: all_otf "build/.zip/Inter UI (TTF)" \ "build/.zip/Inter UI (TTF hinted)" \ "build/.zip/Inter UI (OTF)" - @cp -a build/dist-unhinted/*.woff build/dist-unhinted/*.woff2 \ + @cp -a build/unhinted/*.woff build/unhinted/*.woff2 \ "build/.zip/Inter UI (web)/" @cp -a misc/doc/inter-ui.css "build/.zip/Inter UI (web)/" - @cp -a build/dist-hinted/*.woff build/dist-hinted/*.woff2 \ + @cp -a build/hinted/*.woff build/hinted/*.woff2 \ "build/.zip/Inter UI (web hinted)/" @cp -a misc/doc/inter-ui.css "build/.zip/Inter UI (web hinted)/" - @cp -a build/dist-unhinted/*.ttf "build/.zip/Inter UI (TTF)/" - @cp -a build/dist-hinted/*.ttf "build/.zip/Inter UI (TTF hinted)/" - @cp -a build/dist-unhinted/*.otf "build/.zip/Inter UI (OTF)/" + @cp -a build/unhinted/*.ttf "build/.zip/Inter UI (TTF)/" + @cp -a build/hinted/*.ttf "build/.zip/Inter UI (TTF hinted)/" + @cp -a build/unhinted/*.otf "build/.zip/Inter UI (OTF)/" @cp -a misc/doc/*.txt "build/.zip/" @cp -a LICENSE.txt "build/.zip/" cd build/.zip && zip -v -X -r "../../build/.zip.zip" * >/dev/null && cd ../.. @@ -133,28 +150,28 @@ dist: zip_dist copy_docs_fonts: rm -rf docs/font-files mkdir docs/font-files - cp -a build/dist-unhinted/*.woff build/dist-unhinted/*.woff2 build/dist-unhinted/*.otf docs/font-files/ + cp -a build/unhinted/*.woff build/unhinted/*.woff2 build/unhinted/*.otf docs/font-files/ install_ttf: all_ttf_unhinted $(MAKE) all_web -j @echo "Installing TTF files locally at ~/Library/Fonts/Inter UI" rm -rf ~/'Library/Fonts/Inter UI' mkdir -p ~/'Library/Fonts/Inter UI' - cp -va build/dist-unhinted/*.ttf ~/'Library/Fonts/Inter UI' + cp -va build/unhinted/*.ttf ~/'Library/Fonts/Inter UI' install_ttf_hinted: all_ttf $(MAKE) all_web -j @echo "Installing autohinted TTF files locally at ~/Library/Fonts/Inter UI" rm -rf ~/'Library/Fonts/Inter UI' mkdir -p ~/'Library/Fonts/Inter UI' - cp -va build/dist-hinted/*.ttf ~/'Library/Fonts/Inter UI' + cp -va build/hinted/*.ttf ~/'Library/Fonts/Inter UI' install_otf: all_otf $(MAKE) all_web -j @echo "Installing OTF files locally at ~/Library/Fonts/Inter UI" rm -rf ~/'Library/Fonts/Inter UI' mkdir -p ~/'Library/Fonts/Inter UI' - cp -va build/dist-unhinted/*.otf ~/'Library/Fonts/Inter UI' + cp -va build/unhinted/*.otf ~/'Library/Fonts/Inter UI' install: install_otf @@ -182,6 +199,6 @@ _local/UnicodeData.txt: http://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt clean: - rm -rf build/tmp/* build/dist-hinted build/dist-unhinted + rm -rvf build/tmp build/hinted build/unhinted -.PHONY: all web clean install install_otf install_ttf deploy zip zip_dist pre_dist dist geninfo copy_docs_fonts all_hinted test +.PHONY: all web clean install install_otf install_ttf deploy zip zip_dist pre_dist dist geninfo copy_docs_fonts all_hinted test glyphsync |