2005-07-04 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 NORM_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 = MSCompatUnicodeTable.cs
20
21 all : collation normalization
22
23 normalization: Normalization.cs
24
25 collation : MSCompatUnicodeTable.cs 
26
27 distclean :
28         make clean
29         rm $(UCA_TABLE) $(NORM_TABLE) $(CB_CLASS_TABLE) $(CP932_TABLE) $(DERIV_CORE_PROP_TABLE) $(SCRIPTS_TABLE)
30
31 clean : clean-collation clean-normalization clean-mscompat
32
33 clean-collation :
34         rm -f CollationElementTable.cs $(COLL_ELEM_FILENAME).exe* ../collation.*.bin
35
36 clean-normalization :
37         rm -f Normalization.cs $(NORM_FILENAME).exe* $(COMBINING_FILENAME).exe* $(CANON_EQUIV_FILENAME).exe*
38
39 clean-mscompat :
40         rm -f MSCompatUnicodeTable.cs $(MSTABLEGEN).exe*
41
42
43 # collation element table
44 CollationElementTable.cs : $(COLL_ELEM_FILENAME).exe CollationElementTable.template $(UCA_TABLE)
45         echo "// WARNING: Do not edit this file. It is autogenerated." > CollationElementTable.cs
46         cat CollationElementTable.template >> CollationElementTable.cs || rm CollationElementTable.cs
47         $(RUNTIME) $(COLL_ELEM_FILENAME).exe <  $(UCA_TABLE) >> CollationElementTable.cs || rm CollationElementTable.cs
48         echo "  }" >> CollationElementTable.cs
49         echo "}" >> CollationElementTable.cs
50
51 COLL_TABLE_GENERATOR_SOURCES = \
52         $(COLL_ELEM_FILENAME).cs \
53         CollationElementTableUtil.cs \
54         CodePointIndexer.cs
55
56 $(COLL_ELEM_FILENAME).exe : $(COLL_TABLE_GENERATOR_SOURCES)
57         $(CSCOMPILE) $(COLL_TABLE_GENERATOR_SOURCES)
58
59 # normalization (including combining class)
60 Normalization.cs : $(NORM_FILENAME).exe Normalization.template $(COMBINING_FILENAME).exe $(CANON_EQUIV_FILENAME).exe $(NORM_TABLE) $(UCD_TABLE) $(CB_CLASS_TABLE)
61         echo "// WARNING: Do not edit this file. It is autogenerated." > Normalization.cs
62         cat Normalization.template >> Normalization.cs || rm Normalization.cs
63         $(RUNTIME) $(NORM_FILENAME).exe < $(NORM_TABLE) >> Normalization.cs || rm Normalization.cs
64         $(RUNTIME) $(CANON_EQUIV_FILENAME).exe < $(UCD_TABLE) >> Normalization.cs || rm Normalization.cs
65         $(RUNTIME) $(COMBINING_FILENAME).exe < $(CB_CLASS_TABLE) >> Normalization.cs || rm Normalization.cs
66         echo "  }" >> Normalization.cs
67         echo "}" >> Normalization.cs
68
69 NORM_TABLE_GENERATOR_SOURCES = \
70         $(NORM_FILENAME).cs \
71         NormalizationTableUtil.cs \
72         CodePointIndexer.cs
73
74 $(NORM_FILENAME).exe : $(NORM_TABLE_GENERATOR_SOURCES)
75         $(CSCOMPILE) $(NORM_TABLE_GENERATOR_SOURCES)
76
77 $(COMBINING_FILENAME).exe : $(COMBINING_FILENAME).cs
78         $(CSCOMPILE) $(COMBINING_FILENAME).cs
79
80 CANON_EQUIV_GENERATOR_SOURCES = \
81         $(CANON_EQUIV_FILENAME).cs \
82         NormalizationTableUtil.cs \
83         CodePointIndexer.cs
84
85 $(CANON_EQUIV_FILENAME).exe : $(CANON_EQUIV_GENERATOR_SOURCES)
86         $(CSCOMPILE) $(CANON_EQUIV_GENERATOR_SOURCES)
87
88 $(MSTABLEGEN).exe : $(CREATE_MSCOMPAT_TABLE_SOURCES)
89         $(CSCOMPILE) $(CREATE_MSCOMPAT_TABLE_SOURCES)
90
91 CREATE_MSCOMPAT_TABLE_SOURCES = \
92         create-mscompat-collation-table.cs \
93         CodePointIndexer.cs \
94         CollationElementTable.cs \
95         CollationElementTableUtil.cs \
96         MSCompatUnicodeTableUtil.cs
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
150 #MSCompatUnicodeTable.cs
151
152 $(MSCOMPAT_FILENAME) : MSCompatUnicodeTable.template CollationElementTable.cs $(MSTABLEGEN).exe $(SCRIPTS_TABLE) $(UCD_TABLE) $(UCA_TABLE) $(CP932_TABLE) $(DERIV_CORE_PROP_TABLE) $(DERIV_AGE_TABLE) $(UCA_DATA)
153         echo "// WARNING: Do not edit this file. It is autogenerated." > $(MSCOMPAT_FILENAME)
154         echo "#define GENERATE_TABLE" > $(MSCOMPAT_FILENAME)
155         cat MSCompatUnicodeTable.template >> $(MSCOMPAT_FILENAME)
156         $(RUNTIME) $(MSTABLEGEN).exe downloaded >> $(MSCOMPAT_FILENAME)
157         echo "  }" >> $(MSCOMPAT_FILENAME)
158         echo "}" >> $(MSCOMPAT_FILENAME)
159
160 sample : 
161         $(CSCOMPILE) normtest.cs Normalization.cs NormalizationTableUtil.cs CodePointIndexer.cs