Change line endings.

This commit is contained in:
be5invis 2015-11-28 01:02:53 +08:00
parent 2546c0af4e
commit 3dc8a35782
3 changed files with 230 additions and 230 deletions

184
makefile
View File

@ -1,93 +1,93 @@
default: fonts
OBJDIR = build
include makesupport.mk
PARAM_DEFAULT = FAST='$(FAST)' SUFFIX='' VARIANTNAME='$(VARIANTNAME)' STYLE_COMMON='$(STYLE_COMMON)' STYLE_UPRIGHT='$(STYLE_UPRIGHT)' STYLE_ITALIC='$(STYLE_ITALIC)' VERSION='$(VERSION)'
PARAM_SLAB = FAST='$(FAST)' SUFFIX='-slab' VARIANTNAME='$(VARIANTNAME)' STYLE_COMMON='slab $(STYLE_COMMON)' STYLE_UPRIGHT='$(STYLE_UPRIGHT)' STYLE_ITALIC='$(STYLE_ITALIC)' STYLE_X_REGULAR='x-slab-regular' STYLE_X_BOLD='x-slab-bold' STYLE_X_ITALIC='x-slab-italic' STYLE_X_BOLDITALIC='x-slab-bolditalic' VERSION='$(VERSION)'
PARAM_CC = FAST='$(FAST)' SUFFIX='cc' VARIANTNAME='$(VARIANTNAME)' STYLE_COMMON='cc $(STYLE_COMMON)' STYLE_UPRIGHT='$(STYLE_UPRIGHT)' STYLE_ITALIC='$(STYLE_ITALIC)' VERSION='$(VERSION)'
PARAM_CC_SLAB = FAST='$(FAST)' SUFFIX='cc-slab' VARIANTNAME='$(VARIANTNAME)' STYLE_COMMON='cc slab x-cc-slab $(STYLE_COMMON)' STYLE_UPRIGHT='$(STYLE_UPRIGHT)' STYLE_ITALIC='$(STYLE_ITALIC)' STYLE_X_REGULAR='x-slab-regular' STYLE_X_BOLD='x-slab-bold' STYLE_X_ITALIC='x-slab-italic' STYLE_X_BOLDITALIC='x-slab-bolditalic' VERSION='$(VERSION)'
### Sometimes make will freak out and report ACCESS VIOLATION for me... so i have to add some repeation
LOOPS = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
fdts : fdts-default fdts-cc fdts-slab fdts-cc-slab
fonts : fonts-default fonts-cc fonts-slab fonts-cc-slab
test : test-default test-cc test-slab test-cc-slab
pages : pages-default pages-cc pages-slab pages-cc-slab
release : release-default release-cc release-slab release-cc-slab
$(OBJDIR) :
@- mkdir $@
# fdts
fdts-default : $(SCRIPTS) | $(OBJDIR)
@$(foreach var,$(LOOPS),$(MAKE) -s -f onegroup.mk fdts $(PARAM_DEFAULT) LOOP=$(var);)
fdts-slab : $(SCRIPTS) | $(OBJDIR)
@$(foreach var,$(LOOPS),$(MAKE) -s -f onegroup.mk fdts $(PARAM_SLAB) LOOP=$(var);)
fdts-cc : $(SCRIPTS) | $(OBJDIR)
@$(foreach var,$(LOOPS),$(MAKE) -s -f onegroup.mk fdts $(PARAM_CC) LOOP=$(var);)
fdts-cc-slab : $(SCRIPTS) | $(OBJDIR)
@$(foreach var,$(LOOPS),$(MAKE) -s -f onegroup.mk fdts $(PARAM_CC_SLAB) LOOP=$(var);)
# ttfs
fonts-default : fdts-default
@$(MAKE) -f onegroup.mk fonts $(PARAM_DEFAULT)
fonts-slab : fdts-slab
@$(MAKE) -f onegroup.mk fonts $(PARAM_SLAB)
fonts-cc : fdts-cc
@$(MAKE) -f onegroup.mk fonts $(PARAM_CC)
fonts-cc-slab : fdts-cc-slab
@$(MAKE) -f onegroup.mk fonts $(PARAM_CC_SLAB)
### USED FOR TESTING AND RELEASING
### DO NOT TOUCH!
# testdrive
test-default : fonts-default
@$(MAKE) -f onegroup.mk test $(PARAM_DEFAULT)
test-slab : fonts-slab
@$(MAKE) -f onegroup.mk test $(PARAM_SLAB)
test-cc : fonts-cc
@$(MAKE) -f onegroup.mk test $(PARAM_CC)
test-cc-slab : fonts-cc-slab
@$(MAKE) -f onegroup.mk test $(PARAM_CC_SLAB)
# Pages
pages-default : fonts-default
@$(MAKE) -f onegroup.mk pages $(PARAM_DEFAULT)
pages-slab : fonts-slab
@$(MAKE) -f onegroup.mk pages $(PARAM_SLAB)
pages-cc : fonts-cc
@$(MAKE) -f onegroup.mk pages $(PARAM_CC)
pages-cc-slab : fonts-cc-slab
@$(MAKE) -f onegroup.mk pages $(PARAM_CC_SLAB)
# Release
release-default : fonts-default
@$(MAKE) -f onegroup.mk release $(PARAM_DEFAULT)
release-slab : fonts-slab
@$(MAKE) -f onegroup.mk release $(PARAM_SLAB)
release-cc : fonts-cc
@$(MAKE) -f onegroup.mk release $(PARAM_CC)
release-cc-slab : fonts-cc-slab
@$(MAKE) -f onegroup.mk release $(PARAM_CC_SLAB)
# Archives
archives-default : fonts-default
@$(MAKE) -f onegroup.mk archives $(PARAM_DEFAULT)
archives-slab : fonts-slab
@$(MAKE) -f onegroup.mk archives $(PARAM_SLAB)
archives-cc : fonts-cc
@$(MAKE) -f onegroup.mk archives $(PARAM_CC)
archives-cc-slab : fonts-cc-slab
@$(MAKE) -f onegroup.mk archives $(PARAM_CC_SLAB)
# Variant releases
releasepack-default : $(SCRIPTS) | $(OBJDIR)
$(MAKE) pages release VERSION=$(VERSION)
releasepack-hooky : $(SCRIPTS) | $(OBJDIR)
$(MAKE) archives-default archives-cc VERSION=$(VERSION) VARIANTNAME='variant-hooky-' STYLE_UPRIGHT='v-l-hooky v-i-hooky'
releasepack-zshaped : $(SCRIPTS) | $(OBJDIR)
$(MAKE) archives-default archives-cc VERSION=$(VERSION) VARIANTNAME='variant-zshaped-' STYLE_UPRIGHT='v-l-zshaped v-i-zshaped'
default: fonts
OBJDIR = build
include makesupport.mk
PARAM_DEFAULT = FAST='$(FAST)' SUFFIX='' VARIANTNAME='$(VARIANTNAME)' STYLE_COMMON='$(STYLE_COMMON)' STYLE_UPRIGHT='$(STYLE_UPRIGHT)' STYLE_ITALIC='$(STYLE_ITALIC)' VERSION='$(VERSION)'
PARAM_SLAB = FAST='$(FAST)' SUFFIX='-slab' VARIANTNAME='$(VARIANTNAME)' STYLE_COMMON='slab $(STYLE_COMMON)' STYLE_UPRIGHT='$(STYLE_UPRIGHT)' STYLE_ITALIC='$(STYLE_ITALIC)' STYLE_X_REGULAR='x-slab-regular' STYLE_X_BOLD='x-slab-bold' STYLE_X_ITALIC='x-slab-italic' STYLE_X_BOLDITALIC='x-slab-bolditalic' VERSION='$(VERSION)'
PARAM_CC = FAST='$(FAST)' SUFFIX='cc' VARIANTNAME='$(VARIANTNAME)' STYLE_COMMON='cc $(STYLE_COMMON)' STYLE_UPRIGHT='$(STYLE_UPRIGHT)' STYLE_ITALIC='$(STYLE_ITALIC)' VERSION='$(VERSION)'
PARAM_CC_SLAB = FAST='$(FAST)' SUFFIX='cc-slab' VARIANTNAME='$(VARIANTNAME)' STYLE_COMMON='cc slab x-cc-slab $(STYLE_COMMON)' STYLE_UPRIGHT='$(STYLE_UPRIGHT)' STYLE_ITALIC='$(STYLE_ITALIC)' STYLE_X_REGULAR='x-slab-regular' STYLE_X_BOLD='x-slab-bold' STYLE_X_ITALIC='x-slab-italic' STYLE_X_BOLDITALIC='x-slab-bolditalic' VERSION='$(VERSION)'
### Sometimes make will freak out and report ACCESS VIOLATION for me... so i have to add some repeation
LOOPS = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
fdts : fdts-default fdts-cc fdts-slab fdts-cc-slab
fonts : fonts-default fonts-cc fonts-slab fonts-cc-slab
test : test-default test-cc test-slab test-cc-slab
pages : pages-default pages-cc pages-slab pages-cc-slab
release : release-default release-cc release-slab release-cc-slab
$(OBJDIR) :
@- mkdir $@
# fdts
fdts-default : $(SCRIPTS) | $(OBJDIR)
@$(foreach var,$(LOOPS),$(MAKE) -s -f onegroup.mk fdts $(PARAM_DEFAULT) LOOP=$(var);)
fdts-slab : $(SCRIPTS) | $(OBJDIR)
@$(foreach var,$(LOOPS),$(MAKE) -s -f onegroup.mk fdts $(PARAM_SLAB) LOOP=$(var);)
fdts-cc : $(SCRIPTS) | $(OBJDIR)
@$(foreach var,$(LOOPS),$(MAKE) -s -f onegroup.mk fdts $(PARAM_CC) LOOP=$(var);)
fdts-cc-slab : $(SCRIPTS) | $(OBJDIR)
@$(foreach var,$(LOOPS),$(MAKE) -s -f onegroup.mk fdts $(PARAM_CC_SLAB) LOOP=$(var);)
# ttfs
fonts-default : fdts-default
@$(MAKE) -f onegroup.mk fonts $(PARAM_DEFAULT)
fonts-slab : fdts-slab
@$(MAKE) -f onegroup.mk fonts $(PARAM_SLAB)
fonts-cc : fdts-cc
@$(MAKE) -f onegroup.mk fonts $(PARAM_CC)
fonts-cc-slab : fdts-cc-slab
@$(MAKE) -f onegroup.mk fonts $(PARAM_CC_SLAB)
### USED FOR TESTING AND RELEASING
### DO NOT TOUCH!
# testdrive
test-default : fonts-default
@$(MAKE) -f onegroup.mk test $(PARAM_DEFAULT)
test-slab : fonts-slab
@$(MAKE) -f onegroup.mk test $(PARAM_SLAB)
test-cc : fonts-cc
@$(MAKE) -f onegroup.mk test $(PARAM_CC)
test-cc-slab : fonts-cc-slab
@$(MAKE) -f onegroup.mk test $(PARAM_CC_SLAB)
# Pages
pages-default : fonts-default
@$(MAKE) -f onegroup.mk pages $(PARAM_DEFAULT)
pages-slab : fonts-slab
@$(MAKE) -f onegroup.mk pages $(PARAM_SLAB)
pages-cc : fonts-cc
@$(MAKE) -f onegroup.mk pages $(PARAM_CC)
pages-cc-slab : fonts-cc-slab
@$(MAKE) -f onegroup.mk pages $(PARAM_CC_SLAB)
# Release
release-default : fonts-default
@$(MAKE) -f onegroup.mk release $(PARAM_DEFAULT)
release-slab : fonts-slab
@$(MAKE) -f onegroup.mk release $(PARAM_SLAB)
release-cc : fonts-cc
@$(MAKE) -f onegroup.mk release $(PARAM_CC)
release-cc-slab : fonts-cc-slab
@$(MAKE) -f onegroup.mk release $(PARAM_CC_SLAB)
# Archives
archives-default : fonts-default
@$(MAKE) -f onegroup.mk archives $(PARAM_DEFAULT)
archives-slab : fonts-slab
@$(MAKE) -f onegroup.mk archives $(PARAM_SLAB)
archives-cc : fonts-cc
@$(MAKE) -f onegroup.mk archives $(PARAM_CC)
archives-cc-slab : fonts-cc-slab
@$(MAKE) -f onegroup.mk archives $(PARAM_CC_SLAB)
# Variant releases
releasepack-default : $(SCRIPTS) | $(OBJDIR)
$(MAKE) pages release VERSION=$(VERSION)
releasepack-hooky : $(SCRIPTS) | $(OBJDIR)
$(MAKE) archives-default archives-cc VERSION=$(VERSION) VARIANTNAME='variant-hooky-' STYLE_UPRIGHT='v-l-hooky v-i-hooky'
releasepack-zshaped : $(SCRIPTS) | $(OBJDIR)
$(MAKE) archives-default archives-cc VERSION=$(VERSION) VARIANTNAME='variant-zshaped-' STYLE_UPRIGHT='v-l-zshaped v-i-zshaped'
release-all : releasepack-default releasepack-hooky releasepack-zshaped

View File

@ -1,20 +1,20 @@
SUPPORT_FILES_FROM_PATEL = support/glyph.js support/stroke.js support/spiroexpand.js support/spirokit.js parameters.js
SUPPORT_FILES = $(SUPPORT_FILES_FROM_PATEL) support/glyph.js support/stroke.js support/spiroexpand.js support/spirokit.js parameters.js extract.js generate.js emptyfont.toml parameters.toml
GLYPH_SEGMENTS = glyphs/common-shapes.patel glyphs/overmarks.patel glyphs/latin-basic-capital.patel glyphs/latin-basic-lower.patel glyphs/greek.patel glyphs/cyrillic-basic.patel glyphs/latin-extend-basis.patel glyphs/latin-extend-decorated.patel glyphs/cyrillic-extended.patel glyphs/numbers.patel glyphs/symbol-punctuation.patel glyphs/symbol-math.patel glyphs/symbol-geometric.patel glyphs/symbol-other.patel glyphs/symbol-letter.patel glyphs/autobuilds.patel
SCRIPTS = $(SUPPORT_FILES) buildglyphs.js
SCRIPTS_FROM_PATEL = $(SUPPORT_FILES_FROM_PATEL) buildglyphs.js
buildglyphs.js : buildglyphs.patel $(GLYPH_SEGMENTS)
patel-c --optimize --strict $< -o $@
$(SUPPORT_FILES_FROM_PATEL) :
patel-c --optimize --strict $< -o $@
support/glyph.js : support/glyph.patel
support/stroke.js : support/stroke.patel
support/spirokit.js : support/spirokit.patel
support/spiroexpand.js : support/spiroexpand.patel
parameters.js : parameters.patel
cleanscripts :
-@rm $(SCRIPTS_FROM_PATEL)
SUPPORT_FILES_FROM_PATEL = support/glyph.js support/stroke.js support/spiroexpand.js support/spirokit.js parameters.js
SUPPORT_FILES = $(SUPPORT_FILES_FROM_PATEL) support/glyph.js support/stroke.js support/spiroexpand.js support/spirokit.js parameters.js extract.js generate.js emptyfont.toml parameters.toml
GLYPH_SEGMENTS = glyphs/common-shapes.patel glyphs/overmarks.patel glyphs/latin-basic-capital.patel glyphs/latin-basic-lower.patel glyphs/greek.patel glyphs/cyrillic-basic.patel glyphs/latin-extend-basis.patel glyphs/latin-extend-decorated.patel glyphs/cyrillic-extended.patel glyphs/numbers.patel glyphs/symbol-punctuation.patel glyphs/symbol-math.patel glyphs/symbol-geometric.patel glyphs/symbol-other.patel glyphs/symbol-letter.patel glyphs/autobuilds.patel
SCRIPTS = $(SUPPORT_FILES) buildglyphs.js
SCRIPTS_FROM_PATEL = $(SUPPORT_FILES_FROM_PATEL) buildglyphs.js
buildglyphs.js : buildglyphs.patel $(GLYPH_SEGMENTS)
patel-c --optimize --strict $< -o $@
$(SUPPORT_FILES_FROM_PATEL) :
patel-c --optimize --strict $< -o $@
support/glyph.js : support/glyph.patel
support/stroke.js : support/stroke.patel
support/spirokit.js : support/spirokit.patel
support/spiroexpand.js : support/spiroexpand.patel
parameters.js : parameters.patel
cleanscripts :
-@rm $(SCRIPTS_FROM_PATEL)
scripts : $(SCRIPTS)

View File

@ -1,120 +1,120 @@
default: fonts
TARGETUPM = 1000
OBJDIR = build
include makesupport.mk
PREFIX = $(VARIANTNAME)iosevka$(SUFFIX)
# Change this when an error reports
# On windows, maybe `2> NUL`.
ifeq ($(OS),Windows_NT)
SHELL = C:\\Windows\\System32\\cmd.exe
SUPPRESS_ERRORS = 2> NUL
else
SUPPRESS_ERRORS = 2> /dev/null
endif
NODE = node --max_executable_size=4096
UPRIGHT = $(OBJDIR)/$(PREFIX)-regular.ttf $(OBJDIR)/$(PREFIX)-bold.ttf
ITALIC = $(OBJDIR)/$(PREFIX)-italic.ttf $(OBJDIR)/$(PREFIX)-bolditalic.ttf
TARGETS = $(UPRIGHT) $(ITALIC)
MAPS = $(subst .ttf,.charmap,$(TARGETS))
FDTS = $(subst .ttf,.fdt,$(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(TARGETS)))
PASS0 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(TARGETS))
ABFEAT = $(subst .ttf,.ab.fea,$(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(TARGETS)))
FEATURE = $(subst .ttf,.fea,$(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(UPRIGHT)))
FEATITA = $(subst .ttf,.fea,$(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(ITALIC)))
PASS1 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(TARGETS))
PASS1 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass1-,$(TARGETS))
PASS2 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass2-,$(TARGETS))
PASS3 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass3-,$(TARGETS))
PASS4 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass4-,$(TARGETS))
fonts : $(TARGETS)
fdts : $(FDTS)
# Pass 0 : file construction
$(OBJDIR)/.pass0-$(PREFIX)-regular.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE) generate -o $@ iosevka $(STYLE_COMMON) w-book s-upright x-regular $(STYLE_UPRIGHT) $(STYLE_X_REGILAR)
$(OBJDIR)/.pass0-$(PREFIX)-bold.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE) generate -o $@ iosevka $(STYLE_COMMON) w-bold s-upright x-bold $(STYLE_UPRIGHT) $(STYLE_X_BOLD)
$(OBJDIR)/.pass0-$(PREFIX)-italic.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE) generate -o $@ iosevka $(STYLE_COMMON) w-book s-italic x-italic $(STYLE_ITALIC) $(STYLE_X_ITALIC)
$(OBJDIR)/.pass0-$(PREFIX)-bolditalic.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE) generate -o $@ iosevka $(STYLE_COMMON) w-bold s-italic x-bolditalic $(STYLE_ITALIC) $(STYLE_X_BOLDITALIC)
$(PASS0) : $(OBJDIR)/.pass0-%.ttf : $(OBJDIR)/.pass0-%.fdt
$(NODE) extract --upm 12800 --uprightify 1 --ttf $@ $<
$(ABFEAT) : $(OBJDIR)/.pass0-%.ab.fea : $(OBJDIR)/.pass0-%.fdt
$(NODE) extract --feature $@ $<
$(MAPS) : $(OBJDIR)/%.charmap : $(OBJDIR)/.pass0-%.fdt
$(NODE) extract --charmap $@ $<
$(FEATURE) : $(OBJDIR)/.pass0-%.fea : $(OBJDIR)/.pass0-%.ab.fea features/common.fea features/uprightonly.fea
cat $^ > $@
$(FEATITA) : $(OBJDIR)/.pass0-%.fea : $(OBJDIR)/.pass0-%.ab.fea features/common.fea features/italiconly.fea
cat $^ > $@
# Pass 1 : Outline cleanup and merge
$(PASS1) : $(OBJDIR)/.pass1-%.ttf : pass1-cleanup.py $(OBJDIR)/.pass0-%.ttf
fontforge -quiet -script $^ $@ $(FAST) $(SUPPRESS_ERRORS)
$(PASS2) : $(OBJDIR)/.pass2-%.ttf : pass2-smartround.js $(OBJDIR)/.pass1-%.ttf
$(NODE) $^ $@ --upm $(TARGETUPM)
$(PASS3) : $(OBJDIR)/.pass3-%.ttf : pass3-features.py $(OBJDIR)/.pass2-%.ttf $(OBJDIR)/.pass0-%.fea
fontforge -quiet -script $^ $@ $(TARGETUPM) $(SUPPRESS_ERRORS)
$(PASS4) : $(OBJDIR)/.pass4-%.ttf : pass4-finalize.js $(OBJDIR)/.pass3-%.ttf
@$(NODE) $^ $@.a.ttf
@ttx -q -o $@.a.ttx $@.a.ttf $(SUPPRESS_ERRORS)
@ttx -q -o $@ $@.a.ttx $(SUPPRESS_ERRORS)
@rm $@.a.ttf $@.a.ttx
$(TARGETS) : $(OBJDIR)/%.ttf : $(OBJDIR)/.pass4-%.ttf
ttfautohint $< $@
$(OBJDIR) :
@- mkdir $@
# releaseing
RELEASEDIR = releases
ARCHIVEDIR = release-archives
RELEASES = $(subst $(OBJDIR)/,$(RELEASEDIR)/,$(TARGETS))
$(RELEASES) : $(RELEASEDIR)/%.ttf : $(OBJDIR)/%.ttf
cp $< $@
PAGEDIR = pages/assets
PAGESTTF = $(subst $(OBJDIR)/,$(PAGEDIR)/,$(TARGETS))
$(PAGESTTF) : $(PAGEDIR)/%.ttf : $(OBJDIR)/%.ttf
cp $< $@
PAGESWOFF = $(subst .ttf,.woff,$(PAGESTTF))
$(PAGESWOFF) : $(PAGEDIR)/%.woff : $(PAGEDIR)/%.ttf
sfnt2woff $<
PAGESMAPS = $(subst $(OBJDIR)/,$(PAGEDIR)/,$(MAPS))
$(PAGESMAPS) : $(PAGEDIR)/%.charmap : $(OBJDIR)/%.charmap
cp $< $@
$(ARCHIVEDIR)/$(PREFIX)-$(VERSION).tar.bz2 : $(TARGETS)
cd $(OBJDIR) && tar -cjvf ../$@ $(subst $(OBJDIR)/,,$^)
$(ARCHIVEDIR)/$(PREFIX)-$(VERSION).zip : $(TARGETS)
cd $(OBJDIR) && 7z a -tzip ../$@ $(subst $(OBJDIR)/,,$^)
archives : $(ARCHIVEDIR)/$(PREFIX)-$(VERSION).tar.bz2 $(ARCHIVEDIR)/$(PREFIX)-$(VERSION).zip
pages : $(PAGESTTF) $(PAGESWOFF) $(PAGESMAPS)
release : $(RELEASES) archives pages
# testdrive
TESTDIR = testdrive/assets
TESTTTF = $(subst $(OBJDIR)/,$(TESTDIR)/,$(TARGETS))
$(TESTTTF) : $(TESTDIR)/%.ttf : $(OBJDIR)/%.ttf
cp $< $@
TESTWOFF = $(subst .ttf,.woff,$(TESTTTF))
$(TESTWOFF) : $(TESTDIR)/%.woff : $(TESTDIR)/%.ttf
sfnt2woff $<
TESTMAPS = $(subst $(OBJDIR)/,$(TESTDIR)/,$(MAPS))
$(TESTMAPS) : $(TESTDIR)/%.charmap : $(OBJDIR)/%.charmap
cp $< $@
default: fonts
TARGETUPM = 1000
OBJDIR = build
include makesupport.mk
PREFIX = $(VARIANTNAME)iosevka$(SUFFIX)
# Change this when an error reports
# On windows, maybe `2> NUL`.
ifeq ($(OS),Windows_NT)
SHELL = C:\\Windows\\System32\\cmd.exe
SUPPRESS_ERRORS = 2> NUL
else
SUPPRESS_ERRORS = 2> /dev/null
endif
NODE = node --max_executable_size=4096
UPRIGHT = $(OBJDIR)/$(PREFIX)-regular.ttf $(OBJDIR)/$(PREFIX)-bold.ttf
ITALIC = $(OBJDIR)/$(PREFIX)-italic.ttf $(OBJDIR)/$(PREFIX)-bolditalic.ttf
TARGETS = $(UPRIGHT) $(ITALIC)
MAPS = $(subst .ttf,.charmap,$(TARGETS))
FDTS = $(subst .ttf,.fdt,$(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(TARGETS)))
PASS0 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(TARGETS))
ABFEAT = $(subst .ttf,.ab.fea,$(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(TARGETS)))
FEATURE = $(subst .ttf,.fea,$(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(UPRIGHT)))
FEATITA = $(subst .ttf,.fea,$(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(ITALIC)))
PASS1 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass0-,$(TARGETS))
PASS1 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass1-,$(TARGETS))
PASS2 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass2-,$(TARGETS))
PASS3 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass3-,$(TARGETS))
PASS4 = $(subst $(OBJDIR)/,$(OBJDIR)/.pass4-,$(TARGETS))
fonts : $(TARGETS)
fdts : $(FDTS)
# Pass 0 : file construction
$(OBJDIR)/.pass0-$(PREFIX)-regular.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE) generate -o $@ iosevka $(STYLE_COMMON) w-book s-upright x-regular $(STYLE_UPRIGHT) $(STYLE_X_REGILAR)
$(OBJDIR)/.pass0-$(PREFIX)-bold.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE) generate -o $@ iosevka $(STYLE_COMMON) w-bold s-upright x-bold $(STYLE_UPRIGHT) $(STYLE_X_BOLD)
$(OBJDIR)/.pass0-$(PREFIX)-italic.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE) generate -o $@ iosevka $(STYLE_COMMON) w-book s-italic x-italic $(STYLE_ITALIC) $(STYLE_X_ITALIC)
$(OBJDIR)/.pass0-$(PREFIX)-bolditalic.fdt : $(SCRIPTS) | $(OBJDIR)
$(NODE) generate -o $@ iosevka $(STYLE_COMMON) w-bold s-italic x-bolditalic $(STYLE_ITALIC) $(STYLE_X_BOLDITALIC)
$(PASS0) : $(OBJDIR)/.pass0-%.ttf : $(OBJDIR)/.pass0-%.fdt
$(NODE) extract --upm 12800 --uprightify 1 --ttf $@ $<
$(ABFEAT) : $(OBJDIR)/.pass0-%.ab.fea : $(OBJDIR)/.pass0-%.fdt
$(NODE) extract --feature $@ $<
$(MAPS) : $(OBJDIR)/%.charmap : $(OBJDIR)/.pass0-%.fdt
$(NODE) extract --charmap $@ $<
$(FEATURE) : $(OBJDIR)/.pass0-%.fea : $(OBJDIR)/.pass0-%.ab.fea features/common.fea features/uprightonly.fea
cat $^ > $@
$(FEATITA) : $(OBJDIR)/.pass0-%.fea : $(OBJDIR)/.pass0-%.ab.fea features/common.fea features/italiconly.fea
cat $^ > $@
# Pass 1 : Outline cleanup and merge
$(PASS1) : $(OBJDIR)/.pass1-%.ttf : pass1-cleanup.py $(OBJDIR)/.pass0-%.ttf
fontforge -quiet -script $^ $@ $(FAST) $(SUPPRESS_ERRORS)
$(PASS2) : $(OBJDIR)/.pass2-%.ttf : pass2-smartround.js $(OBJDIR)/.pass1-%.ttf
$(NODE) $^ $@ --upm $(TARGETUPM)
$(PASS3) : $(OBJDIR)/.pass3-%.ttf : pass3-features.py $(OBJDIR)/.pass2-%.ttf $(OBJDIR)/.pass0-%.fea
fontforge -quiet -script $^ $@ $(TARGETUPM) $(SUPPRESS_ERRORS)
$(PASS4) : $(OBJDIR)/.pass4-%.ttf : pass4-finalize.js $(OBJDIR)/.pass3-%.ttf
@$(NODE) $^ $@.a.ttf
@ttx -q -o $@.a.ttx $@.a.ttf $(SUPPRESS_ERRORS)
@ttx -q -o $@ $@.a.ttx $(SUPPRESS_ERRORS)
@rm $@.a.ttf $@.a.ttx
$(TARGETS) : $(OBJDIR)/%.ttf : $(OBJDIR)/.pass4-%.ttf
ttfautohint $< $@
$(OBJDIR) :
@- mkdir $@
# releaseing
RELEASEDIR = releases
ARCHIVEDIR = release-archives
RELEASES = $(subst $(OBJDIR)/,$(RELEASEDIR)/,$(TARGETS))
$(RELEASES) : $(RELEASEDIR)/%.ttf : $(OBJDIR)/%.ttf
cp $< $@
PAGEDIR = pages/assets
PAGESTTF = $(subst $(OBJDIR)/,$(PAGEDIR)/,$(TARGETS))
$(PAGESTTF) : $(PAGEDIR)/%.ttf : $(OBJDIR)/%.ttf
cp $< $@
PAGESWOFF = $(subst .ttf,.woff,$(PAGESTTF))
$(PAGESWOFF) : $(PAGEDIR)/%.woff : $(PAGEDIR)/%.ttf
sfnt2woff $<
PAGESMAPS = $(subst $(OBJDIR)/,$(PAGEDIR)/,$(MAPS))
$(PAGESMAPS) : $(PAGEDIR)/%.charmap : $(OBJDIR)/%.charmap
cp $< $@
$(ARCHIVEDIR)/$(PREFIX)-$(VERSION).tar.bz2 : $(TARGETS)
cd $(OBJDIR) && tar -cjvf ../$@ $(subst $(OBJDIR)/,,$^)
$(ARCHIVEDIR)/$(PREFIX)-$(VERSION).zip : $(TARGETS)
cd $(OBJDIR) && 7z a -tzip ../$@ $(subst $(OBJDIR)/,,$^)
archives : $(ARCHIVEDIR)/$(PREFIX)-$(VERSION).tar.bz2 $(ARCHIVEDIR)/$(PREFIX)-$(VERSION).zip
pages : $(PAGESTTF) $(PAGESWOFF) $(PAGESMAPS)
release : $(RELEASES) archives pages
# testdrive
TESTDIR = testdrive/assets
TESTTTF = $(subst $(OBJDIR)/,$(TESTDIR)/,$(TARGETS))
$(TESTTTF) : $(TESTDIR)/%.ttf : $(OBJDIR)/%.ttf
cp $< $@
TESTWOFF = $(subst .ttf,.woff,$(TESTTTF))
$(TESTWOFF) : $(TESTDIR)/%.woff : $(TESTDIR)/%.ttf
sfnt2woff $<
TESTMAPS = $(subst $(OBJDIR)/,$(TESTDIR)/,$(MAPS))
$(TESTMAPS) : $(TESTDIR)/%.charmap : $(OBJDIR)/%.charmap
cp $< $@
test : $(TESTTTF) $(TESTWOFF) $(TESTMAPS)