Iosevka/makefile
2015-11-25 16:36:24 +08:00

107 lines
5.1 KiB
Makefile

OBJDIR = build
SUPPORT_FILES = 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-ascii.patel glyphs/symbol-punctuation.patel glyphs/symbol-math.patel glyphs/symbol-geometric.patel glyphs/symbol-other.patel glyphs/symbol-letter.patel glyphs/autobuilds.patel
FILES = $(SUPPORT_FILES) buildglyphs.js
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
ifeq ($(OS),Windows_NT)
LOOPS = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
else
LOOPS = 1
endif
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 : $(FILES) | $(OBJDIR)
@$(foreach var,$(LOOPS),$(MAKE) -s -f onegroup.mk fdts $(PARAM_DEFAULT) LOOP=$(var);)
fdts-slab : $(FILES) | $(OBJDIR)
@$(foreach var,$(LOOPS),$(MAKE) -s -f onegroup.mk fdts $(PARAM_SLAB) LOOP=$(var);)
fdts-cc : $(FILES) | $(OBJDIR)
@$(foreach var,$(LOOPS),$(MAKE) -s -f onegroup.mk fdts $(PARAM_CC) LOOP=$(var);)
fdts-cc-slab : $(FILES) | $(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 : $(FILES) | $(OBJDIR)
$(MAKE) pages release VERSION=$(VERSION)
releasepack-hooky : $(FILES) | $(OBJDIR)
$(MAKE) archives-default archives-cc VERSION=$(VERSION) VARIANTNAME='variant-hooky-' STYLE_UPRIGHT='v-l-hooky v-i-hooky'
releasepack-zshaped : $(FILES) | $(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
$(SUPPORT_FILES) :
patel-c --strict $< -o $@
buildglyphs.js : buildglyphs.patel $(GLYPH_SEGMENTS)
patel-c --optimize --mangle --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