-RUNTIME = mono #--debug
-CSCOMPILE = mcs #-debug+
+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
-UCD_TABLE = UCD/UnicodeData.txt
-UCA_TABLE = UCA/allkeys.txt
-NORM_TABLE = UCD/DerivedNormalizationProps.txt
-CB_CLASS_TABLE = UCD/extracted/DerivedCombiningClass.txt
+all : collation normalization
-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
+test : norm-test
+
+normalization: $(NORM_FILENAME)
-all : CollationElementTable.cs Normalization.cs
+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)
-
+ rm $(UCA_TABLE) $(NORM_TABLE) $(CB_CLASS_TABLE) $(CP932_TABLE) $(DERIV_CORE_PROP_TABLE) $(SCRIPTS_TABLE) $(NORM_TEST)
-clean : clean-collation clean-normalization
+clean : clean-collation clean-normalization clean-mscompat clean-normtest
clean-collation :
- rm -f CollationElementTable.cs $(COLL_ELEM_FILENAME).exe*
+ rm -f CollationElementTable.cs $(COLL_ELEM_FILENAME).exe* ../resources/collation.*.bin
clean-normalization :
- rm -f Normalization.cs $(NORM_FILENAME).exe* $(COMBINING_FILENAME).exe* $(CANON_EQUIV_FILENAME).exe*
+ 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)
- cat CollationElementTable.template > CollationElementTable.cs || rm CollationElementTable.cs
- $(RUNTIME) $(COLL_ELEM_FILENAME).exe < $(UCA_TABLE) >> CollationElementTable.cs || rm CollationElementTable.cs
+ 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
CodePointIndexer.cs
$(COLL_ELEM_FILENAME).exe : $(COLL_TABLE_GENERATOR_SOURCES)
- $(CSCOMPILE) $(COLL_TABLE_GENERATOR_SOURCES)
+ MONO_DISABLE_MANAGED_COLLATION=yes $(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)
- 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_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 = \
- $(NORM_FILENAME).cs \
+ $(NORMGEN_FILENAME).cs \
NormalizationTableUtil.cs \
CodePointIndexer.cs
-$(NORM_FILENAME).exe : $(NORM_TABLE_GENERATOR_SOURCES)
- $(CSCOMPILE) $(NORM_TABLE_GENERATOR_SOURCES)
+$(NORMGEN_FILENAME).exe : $(NORM_TABLE_GENERATOR_SOURCES)
+ MONO_DISABLE_MANAGED_COLLATION=yes $(CSCOMPILE) $(NORM_TABLE_GENERATOR_SOURCES)
-$(COMBINING_FILENAME).exe : $(COMBINING_FILENAME).cs
- $(CSCOMPILE) $(COMBINING_FILENAME).cs
+$(MSTABLEGEN).exe : $(CREATE_MSCOMPAT_TABLE_SOURCES)
+ MONO_DISABLE_MANAGED_COLLATION=yes $(CSCOMPILE) $(CREATE_MSCOMPAT_TABLE_SOURCES)
-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)
+CREATE_MSCOMPAT_TABLE_SOURCES = \
+ create-mscompat-collation-table.cs \
+ CodePointIndexer.cs \
+ CollationElementTable.cs \
+ CollationElementTableUtil.cs \
+ MSCompatUnicodeTableUtil.cs
+#wgets
$(UCD_TABLE) :
- if ! test -d UCD; then mkdir UCD; fi
wget www.unicode.org/Public/UNIDATA/UnicodeData.txt
- mv UnicodeData.txt UCD/
- touch UCD/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) :
- if ! test -d UCA; then mkdir UCA; fi
wget http://www.unicode.org/Public/UCA/latest/allkeys.txt
- mv allkeys.txt UCA/
- touch UCA/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) :
- if ! test -d UCD; then mkdir UCD; fi
wget http://www.unicode.org/Public/UNIDATA/DerivedNormalizationProps.txt
- mv DerivedNormalizationProps.txt UCD/
- touch UCD/DerivedNormalizationProps.txt
+ mv DerivedNormalizationProps.txt downloaded/
+ touch downloaded/DerivedNormalizationProps.txt
$(CB_CLASS_TABLE) :
- if ! test -d UCD; then mkdir UCD; fi
- if ! test -d UCD/extracted; then mkdir UCD/extracted; fi
wget http://www.unicode.org/Public/UNIDATA/extracted/DerivedCombiningClass.txt
- mv DerivedCombiningClass.txt UCD/extracted/
- touch UCD/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 Normalization.cs NormalizationTableUtil.cs CodePointIndexer.cs
+ $(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)
+