summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorRasmus Andersson <rasmus@notion.se>2017-08-22 10:05:20 +0300
committerRasmus Andersson <rasmus@notion.se>2017-08-22 12:23:08 +0300
commit3b1fffade1473f20f2558733fbd218f4580fc7c3 (patch)
treeea4f80b43b08744d493bb86ab646444ec04ddc7f /Makefile
downloadinter-3b1fffade1473f20f2558733fbd218f4580fc7c3.tar.xz
Initial public commitv1.0
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile106
1 files changed, 106 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 000000000..6ce4dda73
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,106 @@
+# Targets:
+# all Build all styles in all formats (default)
+# all_ttf Build all styles as TrueType
+# STYLE Build STYLE in all formats (e.g. MediumItalic)
+# STYLE_ttf Build STYLE as TrueType (e.g. MediumItalic_ttf)
+# zip Build all styles as TrueType and package into a zip archive
+#
+all: all_web all_otf
+
+# 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/glyphorder.txt
+
+# UFO -> TTF & OTF (note that UFO deps are defined by generated.make)
+build/tmp/InterfaceTTF/Interface-%.ttf: $(res_files)
+ misc/ufocompile --otf $*
+
+build/tmp/InterfaceOTF/Interface-%.otf: build/tmp/InterfaceTTF/Interface-%.ttf $(res_files)
+ @true
+
+# build/tmp/ttf -> build (generated.make handles build/tmp/InterfaceTTF/Interface-%.ttf)
+build/dist-unhinted/Interface-%.ttf: build/tmp/InterfaceTTF/Interface-%.ttf
+ @mkdir -p build/dist-unhinted
+ cp -a "$<" "$@"
+
+# OTF
+build/dist-unhinted/Interface-%.otf: build/tmp/InterfaceOTF/Interface-%.otf
+ cp -a "$<" "$@"
+
+build/dist:
+ @mkdir -p build/dist
+
+# autohint
+build/dist/Interface-%.ttf: build/dist-unhinted/Interface-%.ttf build/dist
+ 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 "$<" > "$@"
+
+# TTF -> zip
+zip: all
+ @rm -rf build/.zip
+ @rm -f build/.zip.zip
+ @mkdir -p \
+ "build/.zip/Interface (web)" \
+ "build/.zip/Interface (hinted TTF)" \
+ "build/.zip/Interface (TTF)" \
+ "build/.zip/Interface (OTF)"
+ cp -a build/dist/*.woff build/dist/*.woff2 "build/.zip/Interface (web)/"
+ cp -a build/dist/*.ttf "build/.zip/Interface (hinted TTF)/"
+ cp -a build/dist-unhinted/*.ttf "build/.zip/Interface (TTF)/"
+ cp -a build/dist-unhinted/*.otf "build/.zip/Interface (OTF)/"
+ cp -a misc/doc/install-*.txt "build/.zip/"
+ cd build/.zip && zip -v -X -r "../../build/.zip.zip" *
+ @mkdir -p build/release
+ @mv -f build/.zip.zip build/release/Interface-`date '+%Y%m%d'`.zip
+ @echo write build/release/Interface-`date '+%Y%m%d'`.zip
+ @rm -rf build/.zip
+
+install_ttf: all_ttf
+ @echo "Installing TTF files locally at ~/Library/Fonts/Interface"
+ rm -rf ~/Library/Fonts/Interface
+ mkdir -p ~/Library/Fonts/Interface
+ cp -va build/dist/*.ttf ~/Library/Fonts/Interface
+
+install_otf: all_otf
+ @echo "Installing OTF files locally at ~/Library/Fonts/Interface"
+ rm -rf ~/Library/Fonts/Interface
+ mkdir -p ~/Library/Fonts/Interface
+ cp -va build/dist-unhinted/*.otf ~/Library/Fonts/Interface
+
+install: all install_otf
+
+glyphinfo: _local/UnicodeData.txt
+ misc/gen-glyphinfo.py -ucd _local/UnicodeData.txt \
+ src/Interface-*.ufo > misc/preview/glyphinfo.json
+
+# Download latest Unicode data
+_local/UnicodeData.txt:
+ @mkdir -p _local
+ curl -s '-#' -o "$@" \
+ http://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt
+
+clean:
+ rm -vrf build/tmp/* build/dist/Interface-*.*
+
+.PHONY: all web clean install install_otf install_ttf deploy zip glyphinfo