2010-01-20 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mcs / class / corlib / Mono.Globalization.Unicode / Makefile
1 RUNTIME = mono --debug
2 CSCOMPILE = mcs -debug+
3 CS2COMPILE = gmcs -debug+
4
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
15
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
23
24 all : collation normalization
25
26 test : norm-test
27
28 normalization: $(NORM_FILENAME)
29
30 collation : $(MSCOMPAT_FILENAME)
31
32 norm-test : $(NORM_TEST_CS) $(NORM_TEST)
33         $(CS2COMPILE) $(NORM_TEST_CS) -d:TEST_STANDALONE
34
35 distclean :
36         make clean
37         rm $(UCA_TABLE) $(NORM_TABLE) $(CB_CLASS_TABLE) $(CP932_TABLE) $(DERIV_CORE_PROP_TABLE) $(SCRIPTS_TABLE) $(NORM_TEST)
38
39 clean : clean-collation clean-normalization clean-mscompat clean-normtest
40
41 clean-collation :
42         rm -f CollationElementTable.cs $(COLL_ELEM_FILENAME).exe* ../resources/collation.*.bin
43
44 clean-normalization :
45         rm -f $(NORM_FILENAME) $(NORMGEN_FILENAME).exe*
46
47 clean-mscompat :
48         rm -f $(MSCOMPAT_FILENAME) $(MSTABLEGEN).exe*
49
50 clean-normtest :
51         rm -f $(NORM_TEST_CS) $(NORM_TESTGEN).exe*
52
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
60
61 COLL_TABLE_GENERATOR_SOURCES = \
62         $(COLL_ELEM_FILENAME).cs \
63         CollationElementTableUtil.cs \
64         CodePointIndexer.cs
65
66 $(COLL_ELEM_FILENAME).exe : $(COLL_TABLE_GENERATOR_SOURCES)
67         MONO_DISABLE_MANAGED_COLLATION=yes $(CSCOMPILE) $(COLL_TABLE_GENERATOR_SOURCES)
68
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)
77
78 NORM_TABLE_GENERATOR_SOURCES = \
79         $(NORMGEN_FILENAME).cs \
80         NormalizationTableUtil.cs \
81         CodePointIndexer.cs
82
83 $(NORMGEN_FILENAME).exe : $(NORM_TABLE_GENERATOR_SOURCES)
84         MONO_DISABLE_MANAGED_COLLATION=yes $(CSCOMPILE) $(NORM_TABLE_GENERATOR_SOURCES)
85
86 $(MSTABLEGEN).exe : $(CREATE_MSCOMPAT_TABLE_SOURCES)
87         MONO_DISABLE_MANAGED_COLLATION=yes $(CSCOMPILE) $(CREATE_MSCOMPAT_TABLE_SOURCES)
88
89 CREATE_MSCOMPAT_TABLE_SOURCES = \
90         create-mscompat-collation-table.cs \
91         CodePointIndexer.cs \
92         CollationElementTable.cs \
93         CollationElementTableUtil.cs \
94         MSCompatUnicodeTableUtil.cs
95
96 #wgets
97
98 $(UCD_TABLE) :
99         wget www.unicode.org/Public/UNIDATA/UnicodeData.txt
100         mv UnicodeData.txt downloaded/
101         touch downloaded/UnicodeData.txt
102
103 $(SCRIPTS_TABLE) :
104         wget www.unicode.org/Public/UNIDATA/Scripts.txt
105         mv Scripts.txt downloaded/
106         touch downloaded/Scripts.txt
107
108 $(UCA_TABLE) :
109         wget http://www.unicode.org/Public/UCA/latest/allkeys.txt
110         mv allkeys.txt downloaded/
111         touch downloaded/allkeys.txt
112
113 $(LDML_RULES) :
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
117
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
122
123 $(DERIV_AGE_TABLE) :
124         wget http://www.unicode.org/Public/UNIDATA/DerivedAge.txt
125         mv DerivedAge.txt downloaded/
126         touch downloaded/DerivedAge.txt
127
128 $(NORM_TABLE) :
129         wget http://www.unicode.org/Public/UNIDATA/DerivedNormalizationProps.txt
130         mv DerivedNormalizationProps.txt downloaded/
131         touch downloaded/DerivedNormalizationProps.txt
132
133 $(CB_CLASS_TABLE) :
134         wget http://www.unicode.org/Public/UNIDATA/extracted/DerivedCombiningClass.txt
135         mv DerivedCombiningClass.txt downloaded/
136         touch downloaded/DerivedCombiningClass.txt
137
138 $(CP932_TABLE) :
139         wget http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP932.TXT
140         mv CP932.TXT downloaded/
141         touch downloaded/CP932.TXT
142
143 $(UCA_DATA) :
144         wget http://unicode.org/Public/cldr/1.3.0/core.zip
145         unzip core.zip
146         mv core.zip common downloaded
147         touch core.zip
148
149 $(NORM_TEST) : downloaded/NormalizationTest.txt
150         wget wget http://www.unicode.org/Public/UNIDATA/NormalizationTest.txt
151         mv NormalizationTest.txt downloaded/
152         touch downloaded/NormalizationTest.txt
153
154
155 #MSCompatUnicodeTableGenerated.cs
156
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)
164
165 sample : 
166         $(CSCOMPILE) normtest.cs $(NORM_FILENAME) NormalizationTableUtil.cs CodePointIndexer.cs
167
168 #StringNormalizationTest.cs
169
170 $(NORM_TEST_CS) : StringNormalizationTestSource.cs $(NORM_TESTGEN).cs
171         $(CSCOMPILE) $(NORM_TESTGEN).cs
172         $(RUNTIME) ./$(NORM_TESTGEN).exe > $(NORM_TEST_CS)
173