UNICODE=14.0.0 SRCS_$(d)+=\ $(d)/utf/encode.c\ $(d)/utf/decode.c\ $(d)/utf/decodeprev.c\ $(d)/utf/find.c\ $(d)/utf/findlast.c\ $(d)/utf/canfit.c\ $(d)/utf/runelen.c\ $(d)/utf/len.c\ $(d)/utf/runetype-$(UNICODE).c\ $(d)/utf/runewidth-$(UNICODE).c # ======================================================================== # table generation # NOTE: this is pretty hacky... NEED_OBJS=\ $(OBJ_DIR)/base/arg.o\ $(OBJ_DIR)/base/utf/decode.o\ $(OBJ_DIR)/base/error/panicf.o\ $(OBJ_DIR)/base/io/readline.o\ $(OBJ_DIR)/base/io/readuntil.o\ $(OBJ_DIR)/base/io/open.o\ $(OBJ_DIR)/base/io/openfd.o\ $(OBJ_DIR)/base/io/flush.o\ $(OBJ_DIR)/base/io/init.o\ $(OBJ_DIR)/base/mem/move.o\ $(OBJ_DIR)/base/mem/findc.o\ $(d)/utf/vendor/common.o $(d)/utf/vendor/common.o: $(d)/utf/vendor/common.c $(COMPILE) # rune categories $(d)/utf/vendor/UnicodeData-$(UNICODE).txt: @echo "GET UnicodeData.txt";\ curl https://www.unicode.org/Public/$(UNICODE)/ucd/UnicodeData.txt > $@ $(d)/utf/vendor/mkrunetype: $(d)/utf/vendor/mkrunetype.c $(NEED_OBJS) | $(RUNTIME) $(SYS) $(COMPLINK) GENS += $(d)/utf/vendor/mkrunetype $(d)/utf/runetype-$(UNICODE).c: $(d)/utf/vendor/UnicodeData-$(UNICODE).txt $(d)/utf/vendor/mkrunetype @$(dir $@)vendor/mkrunetype $< > $@ # rune widths $(d)/utf/vendor/EastAsianWidth-$(UNICODE).txt: @echo "GET EastAsianWidth.txt";\ curl https://www.unicode.org/Public/$(UNICODE)/ucd/EastAsianWidth.txt > $@ $(d)/utf/vendor/EmojiData-$(UNICODE).txt: @echo "GET EmojiData.txt";\ curl https://www.unicode.org/Public/$(UNICODE)/ucd/emoji/emoji-data.txt > $@ $(d)/utf/vendor/mkrunewidth: $(d)/utf/vendor/mkrunewidth.c $(NEED_OBJS) | $(RUNTIME) $(SYS) $(COMPLINK) GENS += $(d)/utf/vendor/mkrunewidth $(d)/utf/runewidth-$(UNICODE).c: $(d)/utf/vendor/mkrunewidth $(d)/utf/vendor/UnicodeData-$(UNICODE).txt $(d)/utf/vendor/EastAsianWidth-$(UNICODE).txt $(d)/utf/vendor/EmojiData-$(UNICODE).txt @$(dir $@)vendor/mkrunewidth $(filter-out $<, $^) > $@ # grapheme boundaries $(d)/utf/vendor/GraphemeBreakProperty-$(UNICODE).txt: @echo "GET GraphemeBreakProperty.txt";\ curl https://www.unicode.org/Public/$(UNICODE)/ucd/auxiliary/GraphemeBreakProperty.txt > $@ $(d)/utf/vendor/mkgraphemedata: $(d)/utf/vendor/mkgraphemedata.c $(NEED_OBJS) | $(RUNTIME) $(SYS) $(COMPLINK) $(d)/utf/graphemedata-$(UNICODE).c: $(d)/utf/vendor/mkgraphemedata $(d)/utf/vendor/GraphemeBreakProperty-$(UNICODE).txt $^ > $@ GENS += $(d)/utf/vendor/mkgraphemedata