* roottypes.cs: Rename from tree.cs.
[mono.git] / mcs / class / corlib / Mono.Globalization.Unicode / Makefile
index 90eb5ac73e59f0d8dae613b66d124f3b09c270e6..73a3dcbb8ad670544abbcf88e8cb169c28f985e4 100644 (file)
@@ -1,36 +1,60 @@
-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
 
@@ -40,62 +64,110 @@ COLL_TABLE_GENERATOR_SOURCES = \
        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/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)
+