aboutsummaryrefslogtreecommitdiff
path: root/sys/libunicode/rules.mk
diff options
context:
space:
mode:
authorNicholas Noll <nbnoll@eml.cc>2021-10-29 11:10:29 -0700
committerNicholas Noll <nbnoll@eml.cc>2021-10-29 11:10:29 -0700
commit6db99f51209ebde97311df3aac081f82589319cb (patch)
tree8a3e67a2c3ff4087379fb584a88073f0e43696e1 /sys/libunicode/rules.mk
parentb42145545b434a40d6ad50cf3ac6cb6e04ae0500 (diff)
implemented functionality to compute rune widths from unicode data
Diffstat (limited to 'sys/libunicode/rules.mk')
-rw-r--r--sys/libunicode/rules.mk29
1 files changed, 26 insertions, 3 deletions
diff --git a/sys/libunicode/rules.mk b/sys/libunicode/rules.mk
index aca7348..5ba9b89 100644
--- a/sys/libunicode/rules.mk
+++ b/sys/libunicode/rules.mk
@@ -11,18 +11,25 @@ SRCS_$(d) := \
$(d)/canfit.c \
$(d)/runelen.c \
$(d)/len.c \
- $(d)/runetype-$(UNICODE).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 $(OBJ_DIR)/sys/base/base.a
+$(d)/vendor/mkrunetype: $(d)/vendor/mkrunetype.c $(d)/vendor/common.o $(OBJ_DIR)/sys/base/base.a
$(COMPLINK)
GENS += $(d)/vendor/mkrunetype
@@ -30,12 +37,25 @@ 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 $(OBJ_DIR)/sys/base/base.a
+$(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
@@ -43,6 +63,9 @@ $(d)/graphemedata-$(UNICODE).c: $(d)/vendor/mkgraphemedata $(d)/vendor/GraphemeB
GENS += $(d)/vendor/mkgraphemedata
+# ========================================================================
+# normal operations
+
$(LIBS_$(d)): $(OBJS_$(d))
$(ARCHIVE)