blob: 554ba6a62d7e161398ca6bd6ea31d3dcd9db3178 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
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
|