diff options
author | Rasmus <rasmus@notion.se> | 2022-05-26 21:20:06 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-26 21:20:06 +0300 |
commit | 07960766590650e516a75ce6ceba91b68a5fa551 (patch) | |
tree | f0c82cd40cb68950bf8229d14cbc850fec41e5ba /Makefile_v1.make | |
parent | 633839ad550073f9d12e6cea7964a30523974b68 (diff) | |
download | inter-07960766590650e516a75ce6ceba91b68a5fa551.tar.xz |
UPM 2048 and opsz axis (#462)
- UPM is adjusted to 2048
- Additional opsz VF axis (multi master) added which will eventually replace the separate Display family
- New tooling that uses fontmake instead of Inter's own fontbuild toolchain. (The old toolchain is still supported, i.e. `make -f Makefile_v1.make ...`)
Diffstat (limited to 'Makefile_v1.make')
-rw-r--r-- | Makefile_v1.make | 547 |
1 files changed, 547 insertions, 0 deletions
diff --git a/Makefile_v1.make b/Makefile_v1.make new file mode 100644 index 000000000..af595a277 --- /dev/null +++ b/Makefile_v1.make @@ -0,0 +1,547 @@ +# To list all targets: +# make list +# +# High-level make targets: +# text Build all Inter Text fonts (default target) +# display Build all Inter Display fonts +# all Build everything +# web Build all web fonts +# var Build all variable fonts +# test Run all test (builds fonts if needed) +# zip Build a complete ZIP archive of all fonts +# zip_text Build a complete ZIP archive of all Inter Text fonts +# zip_display Build a complete ZIP archive of all Inter Display fonts +# install Build and install all OTF files (macOS only) +# +# Style-specific targets: +# STYLE_otf Build OTF file for STYLE into FONTDIR/const +# STYLE_ttf Build TTF file for STYLE into FONTDIR/const +# STYLE_ttf_hinted Build TTF file for STYLE with hints into +# FONTDIR/const-hinted +# STYLE_web Build WOFF files for STYLE into FONTDIR/const +# STYLE_web_hinted Build WOFF files for STYLE with hints into +# FONTDIR/const-hinted +# STYLE_check Build & check OTF and TTF files for STYLE +# +# "build" directory output structure: +# fonts +# const +# const-hinted +# var +# +FONTDIR = build/fonts + +default: text +all: text display + +# all fonts of given variant +text: all_otf_text all_ttf_text all_ttf_text_hinted all_var_text web_text +display: all_otf_display all_ttf_display all_ttf_display_hinted all_var_display web_display + +# all fonts of a certain type +all_otf: all_otf_text all_otf_display +all_ttf: all_ttf_text all_ttf_display all_ttf_text_hinted all_ttf_display_hinted + +web: web_text web_display +web_text: all_web_text all_web_hinted_text +web_display: all_web_display all_web_hinted_display + +var: all_var_text all_var_display +var_text: $(FONTDIR)/var/Inter.var.woff2 $(FONTDIR)/var/Inter.var.ttf $(FONTDIR)/var/Inter-V.var.ttf +var_display: $(FONTDIR)/var/InterDisplay.var.woff2 $(FONTDIR)/var/InterDisplay.var.ttf $(FONTDIR)/var/InterDisplay-V.var.ttf +all_var_text: \ + $(FONTDIR)/var/Inter.var.ttf \ + $(FONTDIR)/var/Inter.var.woff2 \ + $(FONTDIR)/var/Inter-V.var.ttf \ + $(FONTDIR)/var/Inter-V.var.woff2 \ + $(FONTDIR)/var/Inter-roman.var.ttf \ + $(FONTDIR)/var/Inter-roman.var.woff2 \ + $(FONTDIR)/var/Inter-italic.var.ttf \ + $(FONTDIR)/var/Inter-italic.var.woff2 +all_var_display: \ + $(FONTDIR)/var/InterDisplay.var.ttf \ + $(FONTDIR)/var/InterDisplay.var.woff2 \ + $(FONTDIR)/var/InterDisplay-V.var.ttf \ + $(FONTDIR)/var/InterDisplay-V.var.woff2 \ + $(FONTDIR)/var/InterDisplay-roman.var.ttf \ + $(FONTDIR)/var/InterDisplay-roman.var.woff2 \ + $(FONTDIR)/var/InterDisplay-italic.var.ttf \ + $(FONTDIR)/var/InterDisplay-italic.var.woff2 + +.PHONY: all all_otf all_ttf text display +.PHONY: web web_text web_display +.PHONY: var var_text var_display all_var_text all_var_display + +# Hinted variable font disabled. See https://github.com/rsms/inter/issues/75 +# all_var_hinted: $(FONTDIR)/var-hinted/Inter.var.ttf $(FONTDIR)/var-hinted/Inter.var.woff2 + +BIN := $(PWD)/build/venv/bin +export PATH := $(BIN):$(PATH) + +# list make targets +# We copy the Makefile (first in MAKEFILE_LIST) and disable the include to only list +# primary targets, avoiding the generated targets. +.PHONY: list list_all +list: + @mkdir -p build/etc \ + && cat $(firstword $(MAKEFILE_LIST)) \ + | sed 's/include /#include /g' > build/etc/Makefile-list \ + && $(MAKE) -pRrq -f build/etc/Makefile-list : 2>/dev/null \ + | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' \ + | sort \ + | egrep -v -e '^[^[:alnum:]]' -e '^$@$$' +# list_all is like list, but includes generated targets +list_all: + @$(MAKE) -pRrq -f $(firstword $(MAKEFILE_LIST)) : 2>/dev/null \ + | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' \ + | sort \ + | egrep -v -e '^[^[:alnum:]]' -e '^$@$$' + +# generated.make is automatically generated by init.sh and defines depenencies for +# all styles and alias targets +include build/etc/generated.make + + +# WOFF2 from TTF +build/%.woff2: build/%.ttf + $(BIN)/woff2_compress "$<" + +# WOFF from TTF +build/%.woff: build/%.ttf + $(BIN)/ttf2woff -O -t woff "$<" "$@" + + + +# VF OTF from UFO +$(FONTDIR)/var/Inter.var.ttf: $(all_ufo_masters_text) version.txt + @mkdir -p "$(dir $@)" + misc/fontbuild compile-var -o $@ $(FONTBUILD_FLAGS) build/ufo/Inter.designspace + $(BIN)/gftools fix-unwanted-tables -t MVAR $@ + $(BIN)/gftools fix-dsig --autofix $@ + +$(FONTDIR)/var/Inter-V.var.ttf: $(FONTDIR)/var/Inter.var.ttf + misc/fontbuild rename --family "Inter V" -o $@ $< + +dev-2048: $(FONTDIR)/var/Inter-V-2048.var.ttf + @echo "Installing Inter-V-2048.var.ttf locally in ~/Library/Fonts/Inter/" + mkdir -p ~/'Library/Fonts/Inter' + cp $(FONTDIR)/var/Inter-V-2048.var.ttf ~/'Library/Fonts/Inter' + +$(FONTDIR)/var/Inter-V-2048.var.ttf: $(FONTDIR)/var/Inter.var.ttf + misc/fontbuild rename --family "Inter V 2048" -o $@ $< + +$(FONTDIR)/var/Inter-%.var.ttf: build/ufo/Inter-%.designspace $(all_ufo_masters_text) version.txt + @mkdir -p "$(dir $@)" + misc/fontbuild compile-var -o $@ $(FONTBUILD_FLAGS) $< + misc/tools/fix-vf-meta.py $@ + $(BIN)/gftools fix-unwanted-tables -t MVAR $@ + $(BIN)/gftools fix-dsig --autofix $@ + + +$(FONTDIR)/var/InterDisplay.var.ttf: $(all_ufo_masters_display) version.txt + @mkdir -p "$(dir $@)" + misc/fontbuild compile-var -o $@ $(FONTBUILD_FLAGS) build/ufo/InterDisplay.designspace + $(BIN)/gftools fix-unwanted-tables -t MVAR $@ + $(BIN)/gftools fix-dsig --autofix $@ + +$(FONTDIR)/var/InterDisplay-V.var.ttf: $(FONTDIR)/var/InterDisplay.var.ttf + misc/fontbuild rename --family "Inter Display V" -o $@ $< + +$(FONTDIR)/var/InterDisplay-%.var.ttf: build/ufo/InterDisplay-%.designspace $(all_ufo_masters_display) version.txt + @mkdir -p "$(dir $@)" + misc/fontbuild compile-var -o $@ $(FONTBUILD_FLAGS) $< + misc/tools/fix-vf-meta.py $@ + $(BIN)/gftools fix-unwanted-tables -t MVAR $@ + $(BIN)/gftools fix-dsig --autofix $@ + + +# OTF/TTF from UFO +$(FONTDIR)/const/Inter%.otf: build/ufo/Inter%.ufo version.txt + @mkdir -p "$(dir $@)" + misc/fontbuild compile -o $@ $(FONTBUILD_FLAGS) build/ufo/Inter$*.ufo + +$(FONTDIR)/const/Inter%.ttf: build/ufo/Inter%.ufo version.txt + @mkdir -p "$(dir $@)" + misc/fontbuild compile -o $@ $(FONTBUILD_FLAGS) build/ufo/Inter$*.ufo + + +# DESIGNSPACE from GLYPHS +build/ufo/Inter-roman.designspace: build/ufo/Inter.designspace +build/ufo/Inter-italic.designspace: build/ufo/Inter.designspace +build/ufo/Inter.designspace: src/Inter.glyphs + @mkdir -p build/ufo + misc/fontbuild glyphsync -o build/ufo src/Inter.glyphs +build/ufo/InterDisplay-roman.designspace: build/ufo/InterDisplay.designspace +build/ufo/InterDisplay-italic.designspace: build/ufo/InterDisplay.designspace +build/ufo/InterDisplay.designspace: src/InterDisplay.glyphs + @mkdir -p build/ufo + misc/fontbuild glyphsync -o build/ufo src/InterDisplay.glyphs + + +# short-circuit Make for performance +src/Inter.glyphs: + @true +src/InterDisplay.glyphs: + @true + +# make sure intermediate files are not gc'd by make +.PRECIOUS: build/ufo/Inter-*.designspace build/ufo/InterDisplay-*.designspace + +designspace: build/ufo/Inter.designspace build/ufo/InterDisplay.designspace +.PHONY: designspace + + +# features +src/features: $(wildcard src/features/*) + @touch "$@" + @true +build/ufo/features: src/features + @mkdir -p build/ufo + @rm -f build/ufo/features + @ln -s ../../src/features build/ufo/features + +# make sure intermediate UFOs are not gc'd by make +.PRECIOUS: build/ufo/Inter-%.ufo + +# Note: The seemingly convoluted dependency graph above is required to +# make sure that glyphsync and instancegen are not run in parallel. + + +# hinted TTF files via autohint +$(FONTDIR)/const-hinted/%.ttf: $(FONTDIR)/const/%.ttf + mkdir -p "$(dir $@)" + $(BIN)/ttfautohint --windows-compatibility --adjust-subglyphs --no-info "$<" "$@" + +# python -m ttfautohint --fallback-stem-width=256 --no-info "$<" "$@" + +# $(FONTDIR)/var-hinted/%.ttf: $(FONTDIR)/var/%.ttf +# mkdir -p "$(dir $@)" +# ttfautohint --fallback-stem-width=256 --no-info "$<" "$@" + +# make sure intermediate TTFs are not gc'd by make +.PRECIOUS: $(FONTDIR)/const/%.ttf +.PRECIOUS: $(FONTDIR)/const/%.otf +.PRECIOUS: $(FONTDIR)/const-hinted/%.ttf +.PRECIOUS: $(FONTDIR)/var/%.var.ttf + + + +# test runs all tests +# Note: all_check_const is generated by init.sh and runs "fontbuild checkfont" +# on all otf and ttf files. +test: test_text test_display + +test_text: check_text \ + build/fbreport-text-const.txt \ + build/fbreport-text-var1.txt \ + build/fbreport-text-var2.txt + @echo "$(@): OK" + +test_display: check_display \ + build/fbreport-display-const.txt \ + build/fbreport-display-var1.txt \ + build/fbreport-display-var2.txt + @echo "$(@): OK" + +# FBAKE_ARGS are common args for all fontbakery targets +FBAKE_ARGS := check-universal \ + --no-colors \ + --no-progress \ + --loglevel WARN \ + --succinct \ + -j \ + -x com.google.fonts/check/dsig \ + -x com.google.fonts/check/unitsperem \ + -x com.google.fonts/check/family/win_ascent_and_descent \ + -x com.google.fonts/check/fontbakery_version + +FBAKE_STATIC_ARGS := $(FBAKE_ARGS) -x com.google.fonts/check/family/underline_thickness +FBAKE_VAR_ARGS := $(FBAKE_ARGS) -x com.google.fonts/check/STAT_strings + +# static text family +build/fbreport-text-const.txt: $(wildcard $(FONTDIR)/const/Inter-*.otf) + @echo "fontbakery check-universal Inter-*.otf > $(@) ..." + @$(BIN)/fontbakery $(FBAKE_STATIC_ARGS) $^ > $@ || \ + (cat $@; echo "report at $@"; touch -m -t 199001010000 $@; exit 1) + @echo "fontbakery check-universal Inter-*.otf OK" + +# multi-axis VF text family +build/fbreport-text-var2.txt: $(FONTDIR)/var/Inter.var.ttf + @echo "fontbakery check-universal Inter.var.ttf > $(@) ..." + @$(BIN)/fontbakery $(FBAKE_VAR_ARGS) $^ > $@ || \ + (cat $@; echo "report at $@"; touch -m -t 199001010000 $@; exit 1) + @echo "fontbakery check-universal Inter.var.ttf" + +# single-axis VF text family +build/fbreport-text-var1.txt: $(wildcard $(FONTDIR)/var/Inter-*.var.ttf) + @echo "fontbakery check-universal Inter-*.var.ttf > $(@) ..." + @$(BIN)/fontbakery $(FBAKE_VAR_ARGS) $^ > $@ || \ + (cat $@; echo "report at $@"; touch -m -t 199001010000 $@; exit 1) + @echo "fontbakery check-universal Inter-*.var.ttf" + + +# static display family +build/fbreport-display-const.txt: $(wildcard $(FONTDIR)/const/InterDisplay-*.otf) + @echo "fontbakery check-universal InterDisplay-*.otf > $(@) ..." + @$(BIN)/fontbakery $(FBAKE_STATIC_ARGS) $^ > $@ || \ + (cat $@; echo "report at $@"; touch -m -t 199001010000 $@; exit 1) + @echo "fontbakery check-universal InterDisplay-*.otf" + +# multi-axis VF display family +build/fbreport-display-var2.txt: $(FONTDIR)/var/InterDisplay.var.ttf + @echo "fontbakery check-universal InterDisplay.var.ttf > $(@) ..." + @$(BIN)/fontbakery $(FBAKE_VAR_ARGS) $^ > $@ || \ + (cat $@; echo "report at $@"; touch -m -t 199001010000 $@; exit 1) + @echo "fontbakery check-universal InterDisplay.var.ttf" + +# single-axis VF display family +build/fbreport-display-var1.txt: $(wildcard $(FONTDIR)/var/InterDisplay-*.var.ttf) + @echo "fontbakery check-universal InterDisplay-*.var.ttf > $(@) ..." + @$(BIN)/fontbakery $(FBAKE_VAR_ARGS) $^ > $@ || \ + (cat $@; echo "report at $@"; touch -m -t 199001010000 $@; exit 1) + @echo "fontbakery check-universal InterDisplay-*.var.ttf" + +# check does the same thing as test, but without any dependency checks, meaning +# it will check whatever font files are already built. +check_text: $(wildcard $(FONTDIR)/const/Inter-*.ttf) \ + $(wildcard $(FONTDIR)/const/Inter-*.otf) \ + $(wildcard $(FONTDIR)/const/Inter-*.woff2) \ + $(wildcard $(FONTDIR)/var/Inter-*.var.ttf) \ + $(wildcard $(FONTDIR)/var/Inter-*.var.woff2) \ + $(FONTDIR)/var/Inter.var.ttf \ + $(FONTDIR)/var/Inter.var.woff2 + misc/fontbuild checkfont $^ + @echo "$(@): OK" + +check_display: $(wildcard $(FONTDIR)/const/InterDisplay-*.ttf) \ + $(wildcard $(FONTDIR)/const/InterDisplay-*.otf) \ + $(wildcard $(FONTDIR)/const/InterDisplay-*.woff2) \ + $(wildcard $(FONTDIR)/var/InterDisplay-*.var.ttf) \ + $(wildcard $(FONTDIR)/var/InterDisplay-*.var.woff2) \ + $(FONTDIR)/var/InterDisplay.var.ttf \ + $(FONTDIR)/var/InterDisplay.var.woff2 + misc/fontbuild checkfont $^ + @echo "$(@): OK" + +check_pedantic: $(FONTDIR)/var/Inter.var.ttf + $(BIN)/fontbakery check-universal --dark-theme --loglevel WARN -j \ + -x com.google.fonts/check/unitsperem \ + $^ + +.PHONY: test test_text test_display check_text check_display check_pedantic + + + + +# samples renders PDF and PNG samples +samples: $(FONTDIR)/samples all_samples_pdf all_samples_png + +$(FONTDIR)/samples/%.pdf: $(FONTDIR)/const/%.otf $(FONTDIR)/samples + misc/tools/fontsample/fontsample -o "$@" "$<" + +$(FONTDIR)/samples/%.png: $(FONTDIR)/const/%.otf $(FONTDIR)/samples + misc/tools/fontsample/fontsample -o "$@" "$<" + +$(FONTDIR)/samples: + mkdir -p $@ + +.PHONY: samples + + +# load version, used by zip and dist +VERSION := $(shell cat version.txt) + +# distribution zip files +ZIP_FILE_DIST := build/release/Inter-${VERSION}.zip + +zip: all + $(MAKE) -j8 test + bash misc/makezip.sh -all -reveal-in-finder \ + "build/release/Inter-${VERSION}-$(shell git rev-parse --short=10 HEAD).zip" + +zip_text: text + $(MAKE) -j4 test_text + bash misc/makezip.sh -text -reveal-in-finder \ + "build/release/Inter-${VERSION}-text-$(shell git rev-parse --short=10 HEAD).zip" + +zip_display: display + $(MAKE) -j4 test_display + bash misc/makezip.sh -display -reveal-in-finder \ + "build/release/Inter-${VERSION}-display-$(shell git rev-parse --short=10 HEAD).zip" + + +dist_zip: dist_check dist_build + $(MAKE) -j4 test_text + bash misc/makezip.sh -text -reveal-in-finder "$(ZIP_FILE_DIST)" + +dist_build: text + misc/tools/versionize.py + +dist_check: + @echo "Creating distribution for version ${VERSION}" + @if [ -f "${ZIP_FILE_DIST}" ]; then \ + echo "${ZIP_FILE_DIST} already exists. Bump version or remove the zip file to continue." >&2; \ + exit 1; \ + fi + @echo "——————————————————————————————————————————————————————————————————" + @echo "" + @echo " REMEMBER TO 'make clean' FIRST IF FONT FILES CHANGED" + @echo "" + @echo "——————————————————————————————————————————————————————————————————" + +dist: dist_zip + # Note: "display" dep is here since the "docs" target loosely depends on it + $(MAKE) -j8 display + $(MAKE) -j docs + @echo "——————————————————————————————————————————————————————————————————" + @echo "" + @echo "Next steps:" + @echo "" + @echo "1) Commit & push changes" + @echo "" + @echo "2) Create new release with ${ZIP_FILE_DIST} at" + @echo " https://github.com/rsms/inter/releases/new?tag=v${VERSION}" + @echo "" + @echo "3) Bump version in version.txt (to the next future version)" + @echo "" + @echo "——————————————————————————————————————————————————————————————————" + +.PHONY: zip zip_dist pre_dist dist + + + +docs: docs_fonts + $(MAKE) -j docs_info + +docs_info: docs/_data/fontinfo.json \ + docs/lab/glyphinfo.json \ + docs/glyphs/metrics.json + +docs_fonts: docs_fonts_text docs_fonts_display + + +# TODO: re-enable this when we have figured out how to make subset VFs work +# with substitution features like ccmp. +# docs_fonts_pre: +# rm -rf docs/font-files +# mkdir docs/font-files $(FONTDIR)/subset +# python misc/tools/subset.py +# docs_fonts_text: docs_fonts_pre +# cp -a $(FONTDIR)/const/*.woff \ +# $(FONTDIR)/const/*.woff2 \ +# $(FONTDIR)/const/*.otf \ +# $(FONTDIR)/var/Inter.var.* \ +# $(FONTDIR)/var/InterDisplay.var.* \ +# $(FONTDIR)/var/Inter*-roman.var.* \ +# $(FONTDIR)/var/Inter*-italic.var.* \ +# $(FONTDIR)/subset/Inter-*.woff2 \ +# $(FONTDIR)/subset/Inter.*.woff2 \ +# docs/font-files/ +# docs_fonts_display: docs_fonts_pre +# cp -a $(FONTDIR)/const/*.woff \ +# $(FONTDIR)/const/*.woff2 \ +# $(FONTDIR)/const/*.otf \ +# $(FONTDIR)/var/Inter.var.* \ +# $(FONTDIR)/var/InterDisplay.var.* \ +# $(FONTDIR)/var/Inter*-roman.var.* \ +# $(FONTDIR)/var/Inter*-italic.var.* \ +# $(FONTDIR)/subset/InterDisplay*.woff2 \ +# docs/font-files/ + +docs_fonts_pre: + rm -rf docs/font-files + mkdir docs/font-files + +docs_fonts_text: docs_fonts_pre + cp -a $(FONTDIR)/const/*.woff \ + $(FONTDIR)/const/*.woff2 \ + $(FONTDIR)/const/*.otf \ + $(FONTDIR)/var/Inter.var.* \ + $(FONTDIR)/var/InterDisplay.var.* \ + $(FONTDIR)/var/Inter*-roman.var.* \ + $(FONTDIR)/var/Inter*-italic.var.* \ + docs/font-files/ + +docs_fonts_display: docs_fonts_pre + cp -a $(FONTDIR)/const/*.woff \ + $(FONTDIR)/const/*.woff2 \ + $(FONTDIR)/const/*.otf \ + $(FONTDIR)/var/Inter.var.* \ + $(FONTDIR)/var/InterDisplay.var.* \ + $(FONTDIR)/var/Inter*-roman.var.* \ + $(FONTDIR)/var/Inter*-italic.var.* \ + docs/font-files/ + +.PHONY: docs docs_info docs_fonts docs_fonts_pre docs_fonts_text docs_fonts_display + +docs/_data/fontinfo.json: docs/font-files/Inter-Regular.otf misc/tools/fontinfo.py + misc/tools/fontinfo.py -pretty $< > docs/_data/fontinfo.json + +docs/lab/glyphinfo.json: misc/tools/gen-glyphinfo.py build/ufo/Inter-Regular.ufo + misc/tools/gen-glyphinfo.py -ucd misc/UnicodeData.txt build/ufo/Inter-Regular.ufo > $@ + +docs/glyphs/metrics.json: misc/tools/gen-metrics-and-svgs.py build/ufo/Inter-Regular.ufo + misc/tools/gen-metrics-and-svgs.py build/ufo/Inter-Regular.ufo + + +# Helper target to download latest Unicode data. Nothing depends on this. +ucd_version := 12.1.0 +update_UnicodeData: + @echo "# Unicode $(ucd_version)" > misc/UnicodeData.txt + curl '-#' "https://www.unicode.org/Public/$(ucd_version)/ucd/UnicodeData.txt" >> misc/UnicodeData.txt + + + +# install targets +install_ttf: all_ttf_const + @echo "Installing TTF files locally at ~/Library/Fonts/Inter" + rm -rf ~/'Library/Fonts/Inter' + mkdir -p ~/'Library/Fonts/Inter' + cp -a $(FONTDIR)/const/*.ttf ~/'Library/Fonts/Inter' + +install_ttf_hinted: all_ttf_hinted + @echo "Installing autohinted TTF files locally at ~/Library/Fonts/Inter" + rm -rf ~/'Library/Fonts/Inter' + mkdir -p ~/'Library/Fonts/Inter' + cp -a $(FONTDIR)/const-hinted/*.ttf ~/'Library/Fonts/Inter' + +install_text_otf: all_otf_text + @echo "Installing OTF files locally at ~/Library/Fonts/Inter" + rm -rf ~/'Library/Fonts/Inter' + mkdir -p ~/'Library/Fonts/Inter' + cp -a $(FONTDIR)/const/Inter-*.otf ~/'Library/Fonts/Inter' + +install_display_otf: all_otf_display + @echo "Installing OTF files locally at ~/Library/Fonts/InterDisplay" + rm -rf ~/'Library/Fonts/InterDisplay' + mkdir -p ~/'Library/Fonts/InterDisplay' + cp -a $(FONTDIR)/const/InterDisplay-*.otf ~/'Library/Fonts/InterDisplay' + +install_text_var: $(FONTDIR)/var/Inter-V.var.ttf + mkdir -p ~/'Library/Fonts/Inter' + cp -a $@ ~/'Library/Fonts/Inter/Inter-V.ttf' + +install_display_var: $(FONTDIR)/var/InterDisplay-V.var.ttf + mkdir -p ~/'Library/Fonts/InterDisplay' + cp -a $@ ~/'Library/Fonts/InterDisplay/InterDisplay-V.ttf' + +install: install_text install_display +install_otf: install_text_otf install_display_otf +install_text: install_text_otf install_text_var +install_display: install_display_otf install_display_var + +# deprecated aliases +install_var_v: + @echo 'Please use `make install_text_var` or `make install_display_var` instead.' >&2 + @exit 1 + +.PHONY: install_ttf install_ttf_hinted install_text_otf install_display_otf install_otf +.PHONY: install_text_var install_display_var install_var_v +.PHONY: install install_text install_display + + +# clean removes generated and built fonts in the build directory +clean: + rm -rf build/tmp build/fonts build/ufo build/googlefonts + +.PHONY: clean |