2005-07-29 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / corlib / Mono.Globalization.Unicode / Makefile
1 RUNTIME = mono --debug
2 CSCOMPILE = mcs -debug+
3
4 UCD_TABLE = downloaded/UnicodeData.txt
5 UCA_TABLE = downloaded/allkeys.txt
6 DERIV_CORE_PROP_TABLE = downloaded/DerivedCoreProperties.txt
7 DERIV_AGE_TABLE = downloaded/DerivedAge.txt
8 NORM_TABLE = downloaded/DerivedNormalizationProps.txt
9 SCRIPTS_TABLE = downloaded/Scripts.txt
10 CB_CLASS_TABLE = downloaded/DerivedCombiningClass.txt
11 CP932_TABLE = downloaded/CP932.TXT
12 UCA_DATA = downloaded/core.zip
13
14 NORMGEN_FILENAME = create-normalization-source
15 COLL_ELEM_FILENAME = create-collation-element-table
16 COMBINING_FILENAME = create-combining-class-source
17 CANON_EQUIV_FILENAME = create-char-mapping-source
18 MSTABLEGEN = create-mscompat-collation-table
19 MSCOMPAT_FILENAME = MSCompatUnicodeTableGenerated.cs
20 NORM_FILENAME = NormalizationGenerated.cs
21
22 all : collation normalization
23
24 normalization: $(NORM_FILENAME)
25
26 collation : $(MSCOMPAT_FILENAME)
27
28 distclean :
29         make clean
30         rm $(UCA_TABLE) $(NORM_TABLE) $(CB_CLASS_TABLE) $(CP932_TABLE) $(DERIV_CORE_PROP_TABLE) $(SCRIPTS_TABLE)
31
32 clean : clean-collation clean-normalization clean-mscompat
33
34 clean-collation :
35         rm -f CollationElementTable.cs $(COLL_ELEM_FILENAME).exe* ../collation.*.bin
36
37 clean-normalization :
38         rm -f $(NORM_FILENAME) $(NORMGEN_FILENAME).exe* $(COMBINING_FILENAME).exe* $(CANON_EQUIV_FILENAME).exe*
39
40 clean-mscompat :
41         rm -f $(MSCOMPAT_FILENAME) $(MSTABLEGEN).exe*
42
43
44 # collation element table
45 CollationElementTable.cs : $(COLL_ELEM_FILENAME).exe CollationElementTable.template $(UCA_TABLE)
46         echo "// WARNING: Do not edit this file. It is autogenerated." > CollationElementTable.cs
47         cat CollationElementTable.template >> CollationElementTable.cs || rm CollationElementTable.cs
48         MONO_USE_MANAGED_COLLATION=no $(RUNTIME) $(COLL_ELEM_FILENAME).exe <  $(UCA_TABLE) >> CollationElementTable.cs || rm CollationElementTable.cs
49         echo "  }" >> CollationElementTable.cs
50         echo "}" >> CollationElementTable.cs
51
52 COLL_TABLE_GENERATOR_SOURCES = \
53         $(COLL_ELEM_FILENAME).cs \
54         CollationElementTableUtil.cs \
55         CodePointIndexer.cs
56
57 $(COLL_ELEM_FILENAME).exe : $(COLL_TABLE_GENERATOR_SOURCES)
58         MONO_USE_MANAGED_COLLATION=no $(CSCOMPILE) $(COLL_TABLE_GENERATOR_SOURCES)
59
60 # normalization (including combining class)
61 $(NORM_FILENAME) : $(NORMGEN_FILENAME).exe Normalization.cs $(COMBINING_FILENAME).exe $(CANON_EQUIV_FILENAME).exe $(NORM_TABLE) $(UCD_TABLE) $(CB_CLASS_TABLE)
62         echo "// WARNING: Do not edit this file. It is autogenerated." > $(NORM_FILENAME)
63         cat Normalization.cs >> $(NORM_FILENAME) || rm $(NORM_FILENAME)
64         $(RUNTIME) $(NORMGEN_FILENAME).exe < $(NORM_TABLE) >> $(NORM_FILENAME) || rm $(NORM_FILENAME)
65         $(RUNTIME) $(CANON_EQUIV_FILENAME).exe < $(UCD_TABLE) >> $(NORM_FILENAME) || rm $(NORM_FILENAME)
66         $(RUNTIME) $(COMBINING_FILENAME).exe < $(CB_CLASS_TABLE) >> $(NORM_FILENAME) || rm $(NORM_FILENAME)
67         echo "  }" >> $(NORM_FILENAME)
68         echo "}" >> $(NORM_FILENAME)
69
70 NORM_TABLE_GENERATOR_SOURCES = \
71         $(NORMGEN_FILENAME).cs \
72         NormalizationTableUtil.cs \
73         CodePointIndexer.cs
74
75 $(NORMGEN_FILENAME).exe : $(NORM_TABLE_GENERATOR_SOURCES)
76         MONO_USE_MANAGED_COLLATION=no $(CSCOMPILE) $(NORM_TABLE_GENERATOR_SOURCES)
77
78 CB_GENERATOR_SOURCES = \
79         $(COMBINING_FILENAME).cs \
80         NormalizationTableUtil.cs \
81         CodePointIndexer.cs
82
83 $(COMBINING_FILENAME).exe : $(COMBINING_FILENAME).cs
84         MONO_USE_MANAGED_COLLATION=no $(CSCOMPILE) $(CB_GENERATOR_SOURCES)
85
86 CANON_EQUIV_GENERATOR_SOURCES = \
87         $(CANON_EQUIV_FILENAME).cs \
88         NormalizationTableUtil.cs \
89         CodePointIndexer.cs
90
91 $(CANON_EQUIV_FILENAME).exe : $(CANON_EQUIV_GENERATOR_SOURCES)
92         MONO_USE_MANAGED_COLLATION=no $(CSCOMPILE) $(CANON_EQUIV_GENERATOR_SOURCES)
93
94 $(MSTABLEGEN).exe : $(CREATE_MSCOMPAT_TABLE_SOURCES)
95         MONO_USE_MANAGED_COLLATION=no $(CSCOMPILE) $(CREATE_MSCOMPAT_TABLE_SOURCES)
96
97 CREATE_MSCOMPAT_TABLE_SOURCES = \
98         create-mscompat-collation-table.cs \
99         CodePointIndexer.cs \
100         CollationElementTable.cs \
101         CollationElementTableUtil.cs \
102         MSCompatUnicodeTableUtil.cs
103
104 $(UCD_TABLE) :
105         wget www.unicode.org/Public/UNIDATA/UnicodeData.txt
106         mv UnicodeData.txt downloaded/
107         touch downloaded/UnicodeData.txt
108
109 $(SCRIPTS_TABLE) :
110         wget www.unicode.org/Public/UNIDATA/Scripts.txt
111         mv Scripts.txt downloaded/
112         touch downloaded/Scripts.txt
113
114 $(UCA_TABLE) :
115         wget http://www.unicode.org/Public/UCA/latest/allkeys.txt
116         mv allkeys.txt downloaded/
117         touch downloaded/allkeys.txt
118
119 $(LDML_RULES) :
120         wget "http://dev.icu-project.org/cgi-bin/viewcvs.cgi/*checkout*/icu/source/data/unidata/UCARules.txt?rev=HEAD&content-type=text/plain"
121         mv UCARules.txt* downloaded/
122         touch downloaded/UCARules.txt
123
124 $(DERIV_CORE_PROP_TABLE) :
125         wget http://www.unicode.org/Public/UNIDATA/DerivedCoreProperties.txt
126         mv DerivedCoreProperties.txt downloaded/
127         touch downloaded/DerivedCoreProperties.txt
128
129 $(DERIV_AGE_TABLE) :
130         wget http://www.unicode.org/Public/UNIDATA/DerivedAge.txt
131         mv DerivedAge.txt downloaded/
132         touch downloaded/DerivedAge.txt
133
134 $(NORM_TABLE) :
135         wget http://www.unicode.org/Public/UNIDATA/DerivedNormalizationProps.txt
136         mv DerivedNormalizationProps.txt downloaded/
137         touch downloaded/DerivedNormalizationProps.txt
138
139 $(CB_CLASS_TABLE) :
140         wget http://www.unicode.org/Public/UNIDATA/extracted/DerivedCombiningClass.txt
141         mv DerivedCombiningClass.txt downloaded/
142         touch downloaded/DerivedCombiningClass.txt
143
144 $(CP932_TABLE) :
145         wget http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP932.TXT
146         mv CP932.TXT downloaded/
147         touch downloaded/CP932.TXT
148
149 $(UCA_DATA) :
150         wget http://unicode.org/Public/cldr/1.3.0/core.zip
151         unzip core.zip
152         mv core.zip common downloaded
153         touch core.zip
154
155
156 #MSCompatUnicodeTableGenerated.cs
157
158 $(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)
159         echo "// WARNING: Do not edit this file. It is autogenerated." > $(MSCOMPAT_FILENAME)
160         echo "#define GENERATE_TABLE" > $(MSCOMPAT_FILENAME)
161         cat MSCompatUnicodeTable.cs >> $(MSCOMPAT_FILENAME)
162         MONO_USE_MANAGED_COLLATION=no $(RUNTIME) $(MSTABLEGEN).exe downloaded >> $(MSCOMPAT_FILENAME)
163         echo "  }" >> $(MSCOMPAT_FILENAME)
164         echo "}" >> $(MSCOMPAT_FILENAME)
165
166 sample : 
167         $(CSCOMPILE) normtest.cs $(NORM_FILENAME) NormalizationTableUtil.cs CodePointIndexer.cs