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)/libunicode.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)/sys/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/mkrunewidth: $(d)/vendor/mkrunewidth.c $(d)/vendor/common.o $(OBJ_DIR)/sys/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 @$(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)/sys/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