aboutsummaryrefslogtreecommitdiff
path: root/sys/libunicode/rules.mk
blob: 1d714fe6792f94f37e6f4e8920fd60682f99b333 (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
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/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)/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 $(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)/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