#------------------------------------------------------------------------- # # 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 -I. $(CPPFLAGS) LIBS += $(PTHREAD_LIBS) LDFLAGS_INTERNAL += $(ICU_LIBS) CPPFLAGS += $(ICU_CFLAGS) # By default, do nothing. all: update-unicode: unicode_category_table.h unicode_norm_table.h unicode_nonspacing_table.h unicode_east_asian_fw_table.h unicode_normprops_table.h unicode_norm_hashfunc.h unicode_version.h mv $^ $(top_srcdir)/src/include/common/ $(MAKE) category-check $(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 EastAsianWidth.txt DerivedNormalizationProps.txt CompositionExclusions.txt NormalizationTest.txt: $(top_builddir)/src/Makefile.global $(DOWNLOAD) https://www.unicode.org/Public/$(UNICODE_VERSION)/ucd/$(@F) unicode_version.h: generate-unicode_version.pl $(PERL) $< --version $(UNICODE_VERSION) unicode_category_table.h: generate-unicode_category_table.pl UnicodeData.txt $(PERL) $< # Generation of conversion tables used for string normalization with # UTF-8 strings. unicode_norm_hashfunc.h: unicode_norm_table.h unicode_norm_table.h: generate-unicode_norm_table.pl UnicodeData.txt CompositionExclusions.txt $(PERL) $< unicode_nonspacing_table.h: generate-unicode_nonspacing_table.pl UnicodeData.txt $(PERL) $^ >$@ unicode_east_asian_fw_table.h: generate-unicode_east_asian_fw_table.pl EastAsianWidth.txt $(PERL) $^ >$@ unicode_normprops_table.h: generate-unicode_normprops_table.pl DerivedNormalizationProps.txt $(PERL) $^ >$@ # Test suite category-check: category_test ./category_test normalization-check: norm_test ./norm_test category_test: category_test.o ../unicode_category.o | submake-common 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 $^ $@ .PHONY: normalization-check clean: rm -f $(OBJS) category_test category_test.o norm_test norm_test.o distclean: clean rm -f UnicodeData.txt EastAsianWidth.txt CompositionExclusions.txt NormalizationTest.txt norm_test_table.h unicode_norm_table.h