RUNTIME = mono --debug CSCOMPILE = mcs -debug+ CS2COMPILE = gmcs -debug+ UCD_TABLE = downloaded/UnicodeData.txt UCA_TABLE = downloaded/allkeys.txt DERIV_CORE_PROP_TABLE = downloaded/DerivedCoreProperties.txt DERIV_AGE_TABLE = downloaded/DerivedAge.txt NORM_TABLE = downloaded/DerivedNormalizationProps.txt SCRIPTS_TABLE = downloaded/Scripts.txt CB_CLASS_TABLE = downloaded/DerivedCombiningClass.txt CP932_TABLE = downloaded/CP932.TXT UCA_DATA = downloaded/core.zip NORM_TEST = downloaded/NormalizationTest.txt NORMGEN_FILENAME = create-normalization-source COLL_ELEM_FILENAME = create-collation-element-table MSTABLEGEN = create-mscompat-collation-table MSCOMPAT_FILENAME = MSCompatUnicodeTableGenerated.cs NORM_FILENAME = NormalizationGenerated.cs NORM_TEST_CS = StringNormalizationTest.cs NORM_TESTGEN = create-normalization-tests all : collation normalization test : norm-test normalization: $(NORM_FILENAME) collation : $(MSCOMPAT_FILENAME) norm-test : $(NORM_TEST_CS) $(CS2COMPILE) $(NORM_TEST_CS) -d:TEST_STANDALONE distclean : make clean rm $(UCA_TABLE) $(NORM_TABLE) $(CB_CLASS_TABLE) $(CP932_TABLE) $(DERIV_CORE_PROP_TABLE) $(SCRIPTS_TABLE) $(NORM_TEST) clean : clean-collation clean-normalization clean-mscompat clean-normtest clean-collation : rm -f CollationElementTable.cs $(COLL_ELEM_FILENAME).exe* ../resources/collation.*.bin clean-normalization : rm -f $(NORM_FILENAME) $(NORMGEN_FILENAME).exe* clean-mscompat : rm -f $(MSCOMPAT_FILENAME) $(MSTABLEGEN).exe* clean-normtest : rm -f $(NORM_TEST_CS) $(NORM_TESTGEN).exe* # collation element table CollationElementTable.cs : $(COLL_ELEM_FILENAME).exe CollationElementTable.template $(UCA_TABLE) echo "// WARNING: Do not edit this file. It is autogenerated." > CollationElementTable.cs cat CollationElementTable.template >> CollationElementTable.cs || rm CollationElementTable.cs MONO_DISABLE_MANAGED_COLLATION=yes $(RUNTIME) $(COLL_ELEM_FILENAME).exe < $(UCA_TABLE) >> CollationElementTable.cs || rm CollationElementTable.cs echo " }" >> CollationElementTable.cs echo "}" >> CollationElementTable.cs COLL_TABLE_GENERATOR_SOURCES = \ $(COLL_ELEM_FILENAME).cs \ CollationElementTableUtil.cs \ CodePointIndexer.cs $(COLL_ELEM_FILENAME).exe : $(COLL_TABLE_GENERATOR_SOURCES) MONO_DISABLE_MANAGED_COLLATION=yes $(CSCOMPILE) $(COLL_TABLE_GENERATOR_SOURCES) # normalization (including combining class) $(NORM_FILENAME) : $(NORMGEN_FILENAME).exe Normalization.cs $(NORM_TABLE) $(UCD_TABLE) $(CB_CLASS_TABLE) echo "// WARNING: Do not edit this file. It is autogenerated." > $(NORM_FILENAME) echo "#define GENERATE_TABLE" > $(NORM_FILENAME) cat Normalization.cs >> $(NORM_FILENAME) || rm $(NORM_FILENAME) $(RUNTIME) $(NORMGEN_FILENAME).exe >> $(NORM_FILENAME) || rm $(NORM_FILENAME) echo " }" >> $(NORM_FILENAME) echo "}" >> $(NORM_FILENAME) NORM_TABLE_GENERATOR_SOURCES = \ $(NORMGEN_FILENAME).cs \ NormalizationTableUtil.cs \ CodePointIndexer.cs $(NORMGEN_FILENAME).exe : $(NORM_TABLE_GENERATOR_SOURCES) MONO_DISABLE_MANAGED_COLLATION=yes $(CSCOMPILE) $(NORM_TABLE_GENERATOR_SOURCES) $(MSTABLEGEN).exe : $(CREATE_MSCOMPAT_TABLE_SOURCES) MONO_DISABLE_MANAGED_COLLATION=yes $(CSCOMPILE) $(CREATE_MSCOMPAT_TABLE_SOURCES) CREATE_MSCOMPAT_TABLE_SOURCES = \ create-mscompat-collation-table.cs \ CodePointIndexer.cs \ CollationElementTable.cs \ CollationElementTableUtil.cs \ MSCompatUnicodeTableUtil.cs #wgets $(UCD_TABLE) : wget www.unicode.org/Public/UNIDATA/UnicodeData.txt mv UnicodeData.txt downloaded/ touch downloaded/UnicodeData.txt $(SCRIPTS_TABLE) : wget www.unicode.org/Public/UNIDATA/Scripts.txt mv Scripts.txt downloaded/ touch downloaded/Scripts.txt $(UCA_TABLE) : wget http://www.unicode.org/Public/UCA/latest/allkeys.txt mv allkeys.txt downloaded/ touch downloaded/allkeys.txt $(LDML_RULES) : wget "http://dev.icu-project.org/cgi-bin/viewcvs.cgi/*checkout*/icu/source/data/unidata/UCARules.txt?rev=HEAD&content-type=text/plain" mv UCARules.txt* downloaded/ touch downloaded/UCARules.txt $(DERIV_CORE_PROP_TABLE) : wget http://www.unicode.org/Public/UNIDATA/DerivedCoreProperties.txt mv DerivedCoreProperties.txt downloaded/ touch downloaded/DerivedCoreProperties.txt $(DERIV_AGE_TABLE) : wget http://www.unicode.org/Public/UNIDATA/DerivedAge.txt mv DerivedAge.txt downloaded/ touch downloaded/DerivedAge.txt $(NORM_TABLE) : wget http://www.unicode.org/Public/UNIDATA/DerivedNormalizationProps.txt mv DerivedNormalizationProps.txt downloaded/ touch downloaded/DerivedNormalizationProps.txt $(CB_CLASS_TABLE) : wget http://www.unicode.org/Public/UNIDATA/extracted/DerivedCombiningClass.txt mv DerivedCombiningClass.txt downloaded/ touch downloaded/DerivedCombiningClass.txt $(CP932_TABLE) : wget http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP932.TXT mv CP932.TXT downloaded/ touch downloaded/CP932.TXT $(UCA_DATA) : wget http://unicode.org/Public/cldr/1.3.0/core.zip unzip core.zip mv core.zip common downloaded touch core.zip $(NORM_TEST) : wget wget http://www.unicode.org/Public/UNIDATA/NormalizationTest.txt mv NormalizationTest.txt downloaded/ touch downloaded/NormalizationTest.txt #MSCompatUnicodeTableGenerated.cs $(MSCOMPAT_FILENAME) : MSCompatUnicodeTable.cs CollationElementTable.cs $(MSTABLEGEN).exe $(SCRIPTS_TABLE) $(UCD_TABLE) $(UCA_TABLE) $(CP932_TABLE) $(DERIV_CORE_PROP_TABLE) $(DERIV_AGE_TABLE) $(UCA_DATA) echo "// WARNING: Do not edit this file. It is autogenerated." > $(MSCOMPAT_FILENAME) echo "#define GENERATE_TABLE" > $(MSCOMPAT_FILENAME) cat MSCompatUnicodeTable.cs >> $(MSCOMPAT_FILENAME) MONO_DISABLE_MANAGED_COLLATION=yes $(RUNTIME) $(MSTABLEGEN).exe downloaded >> $(MSCOMPAT_FILENAME) echo " }" >> $(MSCOMPAT_FILENAME) echo "}" >> $(MSCOMPAT_FILENAME) sample : $(CSCOMPILE) normtest.cs $(NORM_FILENAME) NormalizationTableUtil.cs CodePointIndexer.cs #StringNormalizationTest.cs $(NORM_TEST_CS) : StringNormalizationTestSource.cs $(NORM_TESTGEN).cs $(CSCOMPILE) $(NORM_TESTGEN).cs $(RUNTIME) ./$(NORM_TESTGEN).exe > $(NORM_TEST_CS)