summaryrefslogtreecommitdiffstats
path: root/src/common/unicode/Makefile
blob: 93a9d1615f1c1379c90bbb9d0dcff38caffbd82a (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
#-------------------------------------------------------------------------
#
# Makefile
#    Makefile for src/common/unicode
#
# IDENTIFICATION
#    src/common/unicode/Makefile
#
#-------------------------------------------------------------------------

subdir = src/common/unicode
top_builddir = ../../..
include $(top_builddir)/src/Makefile.global

override CPPFLAGS := -DFRONTEND $(CPPFLAGS)
LIBS += $(PTHREAD_LIBS)

# By default, do nothing.
all:

update-unicode: unicode_norm_table.h unicode_combining_table.h unicode_normprops_table.h
	mv $^ ../../../src/include/common/
	$(MAKE) normalization-check

# These files are part of the Unicode Character Database. Download
# them on demand.  The dependency on Makefile.global is for
# UNICODE_VERSION.
UnicodeData.txt DerivedNormalizationProps.txt CompositionExclusions.txt NormalizationTest.txt: $(top_builddir)/src/Makefile.global
	$(DOWNLOAD) https://www.unicode.org/Public/$(UNICODE_VERSION)/ucd/$(@F)

# Generation of conversion tables used for string normalization with
# UTF-8 strings.
unicode_norm_table.h: generate-unicode_norm_table.pl UnicodeData.txt CompositionExclusions.txt
	$(PERL) generate-unicode_norm_table.pl

unicode_combining_table.h: generate-unicode_combining_table.pl UnicodeData.txt
	$(PERL) $^ >$@

unicode_normprops_table.h: generate-unicode_normprops_table.pl DerivedNormalizationProps.txt
	$(PERL) $^ >$@

# Test suite
normalization-check: norm_test
	./norm_test

norm_test: norm_test.o ../unicode_norm.o | submake-common

norm_test.o: norm_test_table.h

.PHONY: submake-common

submake-common:
	$(MAKE) -C .. all

norm_test_table.h: generate-norm_test_table.pl NormalizationTest.txt
	perl generate-norm_test_table.pl NormalizationTest.txt $@

.PHONY: normalization-check


clean:
	rm -f $(OBJS) norm_test norm_test.o

distclean: clean
	rm -f UnicodeData.txt CompositionExclusions.txt NormalizationTest.txt norm_test_table.h unicode_norm_table.h

maintainer-clean: distclean