2 CSCOMPILE = mcs -debug+
3 CS2COMPILE = gmcs -debug+
5 UCD_TABLE = downloaded/UnicodeData.txt
6 UCA_TABLE = downloaded/allkeys.txt
7 DERIV_CORE_PROP_TABLE = downloaded/DerivedCoreProperties.txt
8 DERIV_AGE_TABLE = downloaded/DerivedAge.txt
9 NORM_TABLE = downloaded/DerivedNormalizationProps.txt
10 SCRIPTS_TABLE = downloaded/Scripts.txt
11 CB_CLASS_TABLE = downloaded/DerivedCombiningClass.txt
12 CP932_TABLE = downloaded/CP932.TXT
13 UCA_DATA = downloaded/core.zip
14 NORM_TEST = downloaded/NormalizationTest.txt
16 NORMGEN_FILENAME = create-normalization-source
17 COLL_ELEM_FILENAME = create-collation-element-table
18 MSTABLEGEN = create-mscompat-collation-table
19 MSCOMPAT_FILENAME = MSCompatUnicodeTableGenerated.cs
20 NORM_FILENAME = NormalizationGenerated.cs
21 NORM_TEST_CS = StringNormalizationTest.cs
22 NORM_TESTGEN = create-normalization-tests
24 all : collation normalization
28 normalization: $(NORM_FILENAME)
30 collation : $(MSCOMPAT_FILENAME)
32 norm-test : $(NORM_TEST_CS) $(NORM_TEST)
33 $(CS2COMPILE) $(NORM_TEST_CS) -d:TEST_STANDALONE
37 rm $(UCA_TABLE) $(NORM_TABLE) $(CB_CLASS_TABLE) $(CP932_TABLE) $(DERIV_CORE_PROP_TABLE) $(SCRIPTS_TABLE) $(NORM_TEST)
39 clean : clean-collation clean-normalization clean-mscompat clean-normtest
42 rm -f CollationElementTable.cs $(COLL_ELEM_FILENAME).exe* ../resources/collation.*.bin
45 rm -f $(NORM_FILENAME) $(NORMGEN_FILENAME).exe*
48 rm -f $(MSCOMPAT_FILENAME) $(MSTABLEGEN).exe*
51 rm -f $(NORM_TEST_CS) $(NORM_TESTGEN).exe*
53 # collation element table
54 CollationElementTable.cs : $(COLL_ELEM_FILENAME).exe CollationElementTable.template $(UCA_TABLE)
55 echo "// WARNING: Do not edit this file. It is autogenerated." > CollationElementTable.cs
56 cat CollationElementTable.template >> CollationElementTable.cs || rm CollationElementTable.cs
57 MONO_DISABLE_MANAGED_COLLATION=yes $(RUNTIME) $(COLL_ELEM_FILENAME).exe < $(UCA_TABLE) >> CollationElementTable.cs || rm CollationElementTable.cs
58 echo " }" >> CollationElementTable.cs
59 echo "}" >> CollationElementTable.cs
61 COLL_TABLE_GENERATOR_SOURCES = \
62 $(COLL_ELEM_FILENAME).cs \
63 CollationElementTableUtil.cs \
66 $(COLL_ELEM_FILENAME).exe : $(COLL_TABLE_GENERATOR_SOURCES)
67 MONO_DISABLE_MANAGED_COLLATION=yes $(CSCOMPILE) $(COLL_TABLE_GENERATOR_SOURCES)
69 # normalization (including combining class)
70 $(NORM_FILENAME) : $(NORMGEN_FILENAME).exe Normalization.cs $(NORM_TABLE) $(UCD_TABLE) $(CB_CLASS_TABLE)
71 echo "// WARNING: Do not edit this file. It is autogenerated." > $(NORM_FILENAME)
72 echo "#define GENERATE_TABLE" >> $(NORM_FILENAME); \
73 cat Normalization.cs >> $(NORM_FILENAME); \
74 $(RUNTIME) $(NORMGEN_FILENAME).exe >> $(NORM_FILENAME); \
75 echo " }" >> $(NORM_FILENAME); \
76 echo "}" >> $(NORM_FILENAME) || rm $(NORM_FILENAME)
78 NORM_TABLE_GENERATOR_SOURCES = \
79 $(NORMGEN_FILENAME).cs \
80 NormalizationTableUtil.cs \
83 $(NORMGEN_FILENAME).exe : $(NORM_TABLE_GENERATOR_SOURCES)
84 MONO_DISABLE_MANAGED_COLLATION=yes $(CSCOMPILE) $(NORM_TABLE_GENERATOR_SOURCES)
86 $(MSTABLEGEN).exe : $(CREATE_MSCOMPAT_TABLE_SOURCES)
87 MONO_DISABLE_MANAGED_COLLATION=yes $(CSCOMPILE) $(CREATE_MSCOMPAT_TABLE_SOURCES)
89 CREATE_MSCOMPAT_TABLE_SOURCES = \
90 create-mscompat-collation-table.cs \
92 CollationElementTable.cs \
93 CollationElementTableUtil.cs \
94 MSCompatUnicodeTableUtil.cs
99 wget www.unicode.org/Public/UNIDATA/UnicodeData.txt
100 mv UnicodeData.txt downloaded/
101 touch downloaded/UnicodeData.txt
104 wget www.unicode.org/Public/UNIDATA/Scripts.txt
105 mv Scripts.txt downloaded/
106 touch downloaded/Scripts.txt
109 wget http://www.unicode.org/Public/UCA/latest/allkeys.txt
110 mv allkeys.txt downloaded/
111 touch downloaded/allkeys.txt
114 wget "http://dev.icu-project.org/cgi-bin/viewcvs.cgi/*checkout*/icu/source/data/unidata/UCARules.txt?rev=HEAD&content-type=text/plain"
115 mv UCARules.txt* downloaded/
116 touch downloaded/UCARules.txt
118 $(DERIV_CORE_PROP_TABLE) :
119 wget http://www.unicode.org/Public/UNIDATA/DerivedCoreProperties.txt
120 mv DerivedCoreProperties.txt downloaded/
121 touch downloaded/DerivedCoreProperties.txt
124 wget http://www.unicode.org/Public/UNIDATA/DerivedAge.txt
125 mv DerivedAge.txt downloaded/
126 touch downloaded/DerivedAge.txt
129 wget http://www.unicode.org/Public/UNIDATA/DerivedNormalizationProps.txt
130 mv DerivedNormalizationProps.txt downloaded/
131 touch downloaded/DerivedNormalizationProps.txt
134 wget http://www.unicode.org/Public/UNIDATA/extracted/DerivedCombiningClass.txt
135 mv DerivedCombiningClass.txt downloaded/
136 touch downloaded/DerivedCombiningClass.txt
139 wget http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP932.TXT
140 mv CP932.TXT downloaded/
141 touch downloaded/CP932.TXT
144 wget http://unicode.org/Public/cldr/1.3.0/core.zip
146 mv core.zip common downloaded
150 wget wget http://www.unicode.org/Public/UNIDATA/NormalizationTest.txt
151 mv NormalizationTest.txt downloaded/
152 touch downloaded/NormalizationTest.txt
155 #MSCompatUnicodeTableGenerated.cs
157 $(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)
158 echo "// WARNING: Do not edit this file. It is autogenerated." > $(MSCOMPAT_FILENAME)
159 echo "#define GENERATE_TABLE" > $(MSCOMPAT_FILENAME)
160 cat MSCompatUnicodeTable.cs >> $(MSCOMPAT_FILENAME)
161 MONO_DISABLE_MANAGED_COLLATION=yes $(RUNTIME) $(MSTABLEGEN).exe downloaded >> $(MSCOMPAT_FILENAME)
162 echo " }" >> $(MSCOMPAT_FILENAME)
163 echo "}" >> $(MSCOMPAT_FILENAME)
166 $(CSCOMPILE) normtest.cs $(NORM_FILENAME) NormalizationTableUtil.cs CodePointIndexer.cs
168 #StringNormalizationTest.cs
170 $(NORM_TEST_CS) : StringNormalizationTestSource.cs $(NORM_TESTGEN).cs
171 $(CSCOMPILE) $(NORM_TESTGEN).cs
172 $(RUNTIME) ./$(NORM_TESTGEN).exe > $(NORM_TEST_CS)