RUNTIME = mono --debug CSCOMPILE = mcs -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_FILENAME = create-normalization-source COLL_ELEM_FILENAME = create-collation-element-table COMBINING_FILENAME = create-combining-class-source CANON_EQUIV_FILENAME = create-char-mapping-source MSTABLEGEN = create-mscompat-collation-table MSCOMPAT_FILENAME = MSCompatUnicodeTable.cs all : collation normalization normalization: Normalization.cs collation : MSCompatUnicodeTable.cs distclean : make clean rm $(UCA_TABLE) $(NORM_TABLE) $(CB_CLASS_TABLE) $(CP932_TABLE) $(DERIV_CORE_PROP_TABLE) $(SCRIPTS_TABLE) clean : clean-collation clean-normalization clean-mscompat clean-collation : rm -f CollationElementTable.cs $(COLL_ELEM_FILENAME).exe* clean-normalization : rm -f Normalization.cs $(NORM_FILENAME).exe* $(COMBINING_FILENAME).exe* $(CANON_EQUIV_FILENAME).exe* clean-mscompat : rm -f MSCompatUnicodeTable.cs $(MSTABLEGEN).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 $(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) $(CSCOMPILE) $(COLL_TABLE_GENERATOR_SOURCES) # normalization (including combining class) Normalization.cs : $(NORM_FILENAME).exe Normalization.template $(COMBINING_FILENAME).exe $(CANON_EQUIV_FILENAME).exe $(NORM_TABLE) $(UCD_TABLE) $(CB_CLASS_TABLE) echo "// WARNING: Do not edit this file. It is autogenerated." > Normalization.cs cat Normalization.template >> Normalization.cs || rm Normalization.cs $(RUNTIME) $(NORM_FILENAME).exe < $(NORM_TABLE) >> Normalization.cs || rm Normalization.cs $(RUNTIME) $(CANON_EQUIV_FILENAME).exe < $(UCD_TABLE) >> Normalization.cs || rm Normalization.cs $(RUNTIME) $(COMBINING_FILENAME).exe < $(CB_CLASS_TABLE) >> Normalization.cs || rm Normalization.cs echo " }" >> Normalization.cs echo "}" >> Normalization.cs NORM_TABLE_GENERATOR_SOURCES = \ $(NORM_FILENAME).cs \ NormalizationTableUtil.cs \ CodePointIndexer.cs $(NORM_FILENAME).exe : $(NORM_TABLE_GENERATOR_SOURCES) $(CSCOMPILE) $(NORM_TABLE_GENERATOR_SOURCES) $(COMBINING_FILENAME).exe : $(COMBINING_FILENAME).cs $(CSCOMPILE) $(COMBINING_FILENAME).cs CANON_EQUIV_GENERATOR_SOURCES = \ $(CANON_EQUIV_FILENAME).cs \ NormalizationTableUtil.cs \ CodePointIndexer.cs $(CANON_EQUIV_FILENAME).exe : $(CANON_EQUIV_GENERATOR_SOURCES) $(CSCOMPILE) $(CANON_EQUIV_GENERATOR_SOURCES) $(MSTABLEGEN).exe : $(CREATE_MSCOMPAT_TABLE_SOURCES) $(CSCOMPILE) $(CREATE_MSCOMPAT_TABLE_SOURCES) CREATE_MSCOMPAT_TABLE_SOURCES = \ create-mscompat-collation-table.cs \ CodePointIndexer.cs \ CollationElementTable.cs \ CollationElementTableUtil.cs \ MSCompatUnicodeTableUtil.cs $(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 #MSCompatUnicodeTable.cs $(MSCOMPAT_FILENAME) : MSCompatUnicodeTable.template CollationElementTable.cs $(MSTABLEGEN).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) cat MSCompatUnicodeTable.template >> $(MSCOMPAT_FILENAME) $(RUNTIME) $(MSTABLEGEN).exe downloaded >> $(MSCOMPAT_FILENAME) echo " }" >> $(MSCOMPAT_FILENAME) echo "}" >> $(MSCOMPAT_FILENAME) sample : $(CSCOMPILE) normtest.cs Normalization.cs NormalizationTableUtil.cs CodePointIndexer.cs