include share/push.mk UNICODE=14.0.0 SRCS_$(d):=\ $(d)/encode.c\ $(d)/decode.c\ $(d)/decodeprev.c\ $(d)/find.c\ $(d)/findlast.c\ $(d)/canfit.c\ $(d)/runelen.c\ $(d)/len.c\ $(d)/runetype-$(UNICODE).c\ $(d)/runewidth-$(UNICODE).c LIBS_$(d):=$(d)/libutf.a include share/paths.mk # ======================================================================== # table generation $(d)/vendor/common.o: $(d)/vendor/common.c $(COMPILE) # rune categories $(d)/vendor/UnicodeData-$(UNICODE).txt: @echo "GET UnicodeData.txt";\ curl https://www.unicode.org/Public/$(UNICODE)/ucd/UnicodeData.txt > $@ $(d)/vendor/mkrunetype: $(d)/vendor/mkrunetype.c $(d)/vendor/common.o $(OBJ_DIR)/base/base.a $(COMPLINK) GENS += $(d)/vendor/mkrunetype $(d)/runetype-$(UNICODE).c: $(d)/vendor/UnicodeData-$(UNICODE).txt $(d)/vendor/mkrunetype @$(dir $@)vendor/mkrunetype $< > $@ # rune widths $(d)/vendor/EastAsianWidth-$(UNICODE).txt: @echo "GET EastAsianWidth.txt";\ curl https://www.unicode.org/Public/$(UNICODE)/ucd/EastAsianWidth.txt > $@ $(d)/vendor/EmojiData-$(UNICODE).txt: @echo "GET EmojiData.txt";\ curl https://www.unicode.org/Public/$(UNICODE)/ucd/emoji/emoji-data.txt > $@ $(d)/vendor/mkrunewidth: $(d)/vendor/mkrunewidth.c $(d)/vendor/common.o $(OBJ_DIR)/base/base.a $(COMPLINK) GENS += $(d)/vendor/mkrunewidth $(d)/runewidth-$(UNICODE).c: $(d)/vendor/mkrunewidth $(d)/vendor/UnicodeData-$(UNICODE).txt $(d)/vendor/EastAsianWidth-$(UNICODE).txt $(d)/vendor/EmojiData-$(UNICODE).txt @$(dir $@)vendor/mkrunewidth $(filter-out $<, $^) > $@ # grapheme boundaries $(d)/vendor/GraphemeBreakProperty-$(UNICODE).txt: @echo "GET GraphemeBreakProperty.txt";\ curl https://www.unicode.org/Public/$(UNICODE)/ucd/auxiliary/GraphemeBreakProperty.txt > $@ $(d)/vendor/mkgraphemedata: $(d)/vendor/mkgraphemedata.c $(d)/vendor/common.o $(OBJ_DIR)/base/base.a $(COMPLINK) $(d)/graphemedata-$(UNICODE).c: $(d)/vendor/mkgraphemedata $(d)/vendor/GraphemeBreakProperty-$(UNICODE).txt $^ > $@ GENS += $(d)/vendor/mkgraphemedata # ======================================================================== # normal operations $(LIBS_$(d)): $(OBJS_$(d)) $(ARCHIVE) include share/pop.mk