1
2# Directory containing conversion tables.
3# You have to unpack the conversion-tables.tar.gz package.
4TABLESDIR = /home/bruno/chs/conversion-tables
5
6ALL = \
7 ascii.h \
8 iso8859_1.h \
9 iso8859_2.h \
10 iso8859_3.h \
11 iso8859_4.h \
12 iso8859_5.h \
13 iso8859_6.h \
14 iso8859_7.h \
15 iso8859_8.h \
16 iso8859_9.h \
17 iso8859_10.h \
18 iso8859_11.h \
19 iso8859_13.h \
20 iso8859_14.h \
21 iso8859_15.h \
22 iso8859_16.h \
23 koi8_r.h \
24 koi8_u.h \
25 koi8_ru.h \
26 cp1250.h \
27 cp1251.h \
28 cp1252.h \
29 cp1253.h \
30 cp1254.h \
31 cp1255.h \
32 cp1256.h \
33 cp1257.h \
34 cp1258.h \
35 cp850.h \
36 cp862.h \
37 cp866.h \
38 mac_roman.h \
39 mac_centraleurope.h \
40 mac_iceland.h \
41 mac_croatian.h \
42 mac_romania.h \
43 mac_cyrillic.h \
44 mac_ukraine.h \
45 mac_greek.h \
46 mac_turkish.h \
47 mac_hebrew.h \
48 mac_arabic.h \
49 mac_thai.h \
50 hp_roman8.h \
51 nextstep.h \
52 armscii_8.h \
53 georgian_academy.h \
54 georgian_ps.h \
55 koi8_t.h \
56 pt154.h \
57 mulelao.h \
58 cp1133.h \
59 tis620.h \
60 cp874.h \
61 viscii.h \
62 tcvn.h \
63 jisx0201.h \
64 jisx0208.h \
65 jisx0212.h \
66 cp932ext.h \
67 gb2312.h \
68 isoir165ext.h \
69 gb12345ext.h \
70 gbkext1.h \
71 gbkext2.h \
72 gbkext_inv.h \
73 cp936ext.h \
74 gb18030ext.h \
75 gb18030uni.h \
76 cns11643_1.h \
77 cns11643_2.h \
78 cns11643_3.h \
79 cns11643_4a.h \
80 cns11643_4b.h \
81 cns11643_5.h \
82 cns11643_6.h \
83 cns11643_7.h \
84 cns11643_15.h \
85 cns11643_inv.h \
86 big5.h \
87 cp950ext.h \
88 hkscs.h \
89 ksc5601.h \
90 uhc_1.h \
91 uhc_2.h \
92 johab_hangul.h \
93 cp856.h \
94 cp922.h \
95 cp1046.h \
96 cp1124.h \
97 cp1129.h \
98 cp1161.h \
99 cp1162.h \
100 cp1163.h \
101 cp437.h \
102 cp737.h \
103 cp775.h \
104 cp852.h \
105 cp853.h \
106 cp855.h \
107 cp857.h \
108 cp858.h \
109 cp860.h \
110 cp861.h \
111 cp863.h \
112 cp864.h \
113 cp865.h \
114 cp869.h \
115 cp1125.h \
116 jisx0213.h \
117 tds565.h \
118 atarist.h \
119 riscos1.h \
120 cjk_variants.h
121
122all : $(ALL)
123
124ascii.h : $(TABLESDIR)/glibc-2.1-iconv/ASCII.TXT 8bit_tab_to_h
125	./8bit_tab_to_h ASCII ascii < $<
126
127iso8859_1.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-1.TXT 8bit_tab_to_h
128	./8bit_tab_to_h ISO-8859-1 iso8859_1 < $<
129
130iso8859_2.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-2.TXT 8bit_tab_to_h
131	./8bit_tab_to_h ISO-8859-2 iso8859_2 < $<
132
133iso8859_3.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-3.TXT 8bit_tab_to_h
134	./8bit_tab_to_h ISO-8859-3 iso8859_3 < $<
135
136iso8859_4.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-4.TXT 8bit_tab_to_h
137	./8bit_tab_to_h ISO-8859-4 iso8859_4 < $<
138
139iso8859_5.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-5.TXT 8bit_tab_to_h
140	./8bit_tab_to_h ISO-8859-5 iso8859_5 < $<
141
142iso8859_6.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-6.TXT 8bit_tab_to_h
143	./8bit_tab_to_h ISO-8859-6 iso8859_6 < $<
144
145iso8859_7.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-7-2003.TXT 8bit_tab_to_h
146	./8bit_tab_to_h ISO-8859-7 iso8859_7 < $<
147
148iso8859_8.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-8.TXT 8bit_tab_to_h
149	./8bit_tab_to_h ISO-8859-8 iso8859_8 < $<
150
151iso8859_9.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-9.TXT 8bit_tab_to_h
152	./8bit_tab_to_h ISO-8859-9 iso8859_9 < $<
153
154iso8859_10.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-10.TXT 8bit_tab_to_h
155	./8bit_tab_to_h ISO-8859-10 iso8859_10 < $<
156
157iso8859_11.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-11.TXT 8bit_tab_to_h
158	./8bit_tab_to_h ISO-8859-11 iso8859_11 < $<
159
160iso8859_13.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-13.TXT 8bit_tab_to_h
161	./8bit_tab_to_h ISO-8859-13 iso8859_13 < $<
162
163iso8859_14.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-14.TXT 8bit_tab_to_h
164	./8bit_tab_to_h ISO-8859-14 iso8859_14 < $<
165
166iso8859_15.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-15.TXT 8bit_tab_to_h
167	./8bit_tab_to_h ISO-8859-15 iso8859_15 < $<
168
169iso8859_16.h : $(TABLESDIR)/unicode.org-mappings/ISO8859/8859-16.TXT 8bit_tab_to_h
170	./8bit_tab_to_h ISO-8859-16 iso8859_16 < $<
171
172koi8_r.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MISC/KOI8-R.TXT 8bit_tab_to_h
173	./8bit_tab_to_h KOI8-R koi8_r < $<
174
175koi8_u.h : $(TABLESDIR)/csets-new/KOI8-U.TXT 8bit_tab_to_h
176	./8bit_tab_to_h KOI8-U koi8_u < $<
177
178koi8_ru.h : $(TABLESDIR)/freebsd-iconv-0.4/KOI8-RU.TXT 8bit_tab_to_h
179	./8bit_tab_to_h KOI8-RU koi8_ru < $<
180
181cp1250.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1250.TXT 8bit_tab_to_h
182	./8bit_tab_to_h CP1250 cp1250 < $<
183
184cp1251.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1251.TXT 8bit_tab_to_h
185	./8bit_tab_to_h CP1251 cp1251 < $<
186
187cp1252.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1252.TXT 8bit_tab_to_h
188	./8bit_tab_to_h CP1252 cp1252 < $<
189
190cp1253.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1253.TXT 8bit_tab_to_h
191	./8bit_tab_to_h CP1253 cp1253 < $<
192
193cp1254.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1254.TXT 8bit_tab_to_h
194	./8bit_tab_to_h CP1254 cp1254 < $<
195
196cp1255.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1255.TXT 8bit_tab_to_h
197	./8bit_tab_to_h CP1255 cp1255 < $<
198
199cp1256.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1256.TXT 8bit_tab_to_h
200	./8bit_tab_to_h CP1256 cp1256 < $<
201
202cp1257.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1257.TXT 8bit_tab_to_h
203	./8bit_tab_to_h CP1257 cp1257 < $<
204
205cp1258.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP1258.TXT 8bit_tab_to_h
206	./8bit_tab_to_h CP1258 cp1258 < $<
207
208cp850.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP850.TXT 8bit_tab_to_h
209	./8bit_tab_to_h CP850 cp850 < $<
210
211cp862.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP862.TXT 8bit_tab_to_h
212	./8bit_tab_to_h CP862 cp862 < $<
213
214cp866.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP866.TXT 8bit_tab_to_h
215	./8bit_tab_to_h CP866 cp866 < $<
216
217mac_roman.h : $(TABLESDIR)/jdk-1.1.7b/MAC-ROMAN.TXT 8bit_tab_to_h
218	./8bit_tab_to_h MacRoman mac_roman < $<
219
220mac_centraleurope.h : $(TABLESDIR)/jdk-1.1.7b/MAC-CENTRAL-EUROPE.TXT 8bit_tab_to_h
221	./8bit_tab_to_h MacCentralEurope mac_centraleurope < $<
222
223mac_iceland.h : $(TABLESDIR)/jdk-1.1.7b/MAC-ICELAND.TXT 8bit_tab_to_h
224	./8bit_tab_to_h MacIceland mac_iceland < $<
225
226mac_croatian.h : $(TABLESDIR)/jdk-1.1.7b/MAC-CROATIAN.TXT 8bit_tab_to_h
227	./8bit_tab_to_h MacCroatian mac_croatian < $<
228
229mac_romania.h : $(TABLESDIR)/jdk-1.1.7b/MAC-ROMANIA.TXT 8bit_tab_to_h
230	./8bit_tab_to_h MacRomania mac_romania < $<
231
232mac_cyrillic.h : $(TABLESDIR)/jdk-1.1.7b/MAC-CYRILLIC.TXT 8bit_tab_to_h
233	./8bit_tab_to_h MacCyrillic mac_cyrillic < $<
234
235mac_ukraine.h : $(TABLESDIR)/jdk-1.1.7b/MAC-UKRAINE.TXT 8bit_tab_to_h
236	./8bit_tab_to_h MacUkraine mac_ukraine < $<
237
238mac_greek.h : $(TABLESDIR)/jdk-1.1.7b/MAC-GREEK.TXT 8bit_tab_to_h
239	./8bit_tab_to_h MacGreek mac_greek < $<
240
241mac_turkish.h : $(TABLESDIR)/jdk-1.1.7b/MAC-TURKISH.TXT 8bit_tab_to_h
242	./8bit_tab_to_h MacTurkish mac_turkish < $<
243
244mac_hebrew.h : $(TABLESDIR)/jdk-1.1.7b/MAC-HEBREW.TXT 8bit_tab_to_h
245	./8bit_tab_to_h MacHebrew mac_hebrew < $<
246
247mac_arabic.h : $(TABLESDIR)/jdk-1.1.7b/MAC-ARABIC.TXT 8bit_tab_to_h
248	./8bit_tab_to_h MacArabic mac_arabic < $<
249
250mac_thai.h : $(TABLESDIR)/jdk-1.1.7b/MAC-THAI.TXT 8bit_tab_to_h
251	./8bit_tab_to_h MacThai mac_thai < $<
252
253hp_roman8.h : $(TABLESDIR)/glibc-2.1-iconv/HP-ROMAN8.TXT 8bit_tab_to_h
254	./8bit_tab_to_h HP-ROMAN8 hp_roman8 < $<
255
256nextstep.h : $(TABLESDIR)/clisp/NEXTSTEP.TXT 8bit_tab_to_h
257	./8bit_tab_to_h NEXTSTEP nextstep < $<
258
259armscii_8.h : $(TABLESDIR)/glibc-2.2.90-iconv/ARMSCII-8.TXT 8bit_tab_to_h
260	(echo '#' ; cat $<) | ./8bit_tab_to_h ARMSCII-8 armscii_8
261
262georgian_academy.h : $(TABLESDIR)/csets-1.6/GEO-ITA.TXT 8bit_tab_to_h
263	./8bit_tab_to_h GEORGIAN-ACADEMY georgian_academy < $<
264
265georgian_ps.h : $(TABLESDIR)/csets-1.6/GEO-PS.TXT 8bit_tab_to_h
266	./8bit_tab_to_h GEORGIAN-PS georgian_ps < $<
267
268koi8_t.h : $(TABLESDIR)/glibc-2.2.90-iconv/KOI8-T.TXT
269	(echo '#' ; cat $<) | ./8bit_tab_to_h KOI8-T koi8_t
270
271pt154.h : $(TABLESDIR)/IANA/PTCP154.TXT
272	./8bit_tab_to_h PT154 pt154 < $<
273
274mulelao.h : $(TABLESDIR)/csets-new/MULELAO1.TXT 8bit_tab_to_h
275	./8bit_tab_to_h MULELAO-1 mulelao < $<
276
277cp1133.h : $(TABLESDIR)/csets-new/CP1133.TXT 8bit_tab_to_h
278	./8bit_tab_to_h IBM-CP1133 cp1133 < $<
279
280tis620.h : $(TABLESDIR)/glibc-2.1-iconv/TIS-620.TXT 8bit_tab_to_h
281	./8bit_tab_to_h TIS620.2533-1 tis620 < $<
282
283cp874.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP874.TXT 8bit_tab_to_h
284	./8bit_tab_to_h CP874 cp874 < $<
285
286viscii.h : $(TABLESDIR)/csets-1.6/VISCII.TXT 8bit_tab_to_h
287	./8bit_tab_to_h VISCII1.1-1 viscii < $<
288
289tcvn.h : $(TABLESDIR)/csets-1.6/VN5712-1.TXT 8bit_tab_to_h
290	./8bit_tab_to_h TCVN-5712 tcvn < $<
291
292jisx0201.h : $(TABLESDIR)/clisp/JIS_X0201.TXT 8bit_tab_to_h
293	./8bit_tab_to_h JISX0201.1976-0 jisx0201 < $<
294
295# We use modified JISX0208 and JISX0212 tables. Why?
296# Hironori Sakamoto and Tomohiro Kubota explain that
297# - EUC-JP and SHIFT_JIS contain JISX0208 exactly,
298# - Their round-trip conversion to Unicode and back must be the identity,
299# - Conversions between EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP must behave
300#   as if no Unicode conversion was involved,
301# - When JISX0208 is used as a CES (i.e. combined with ASCII) its mapping of
302#   REVERSE SOLIDUS becomes a FULLWIDTH REVERSE SOLIDUS, apparently because
303#   round-trip conversion stability is more important than a particular glyph.
304#   Only with CCS the character is a REVERSE SOLIDUS.
305# As a consequence, we use FULLWIDTH REVERSE SOLIDUS in EUC-JP's JISX0208 part,
306# and for consistency also in SHIFT_JIS and ISO-2022-JP, i.e. everywhere.
307# JISX0208 never occurs as a CCS in practice. Similarly with JISX0212.
308
309# Unicode.org maps 0x2140 to U+005C. We map it to U+FF3C.
310jisx0208.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/JIS/JIS0208.TXT cjk_tab_to_h
311	sed -e 's,^0x....[ 	]*\(0x....[ 	]*0x.....*\)$$,\1,' < $< | sed -e 's,\([ 	]\)0x005C,\10xFF3C,' | ./cjk_tab_to_h JISX0208.1990-0 jisx0208 > $@
312
313# Unicode.org maps 0x2237 to U+007E. We map it to U+FF5E.
314jisx0212.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/JIS/JIS0212.TXT cjk_tab_to_h
315	sed -e 's,\([ 	]\)0x007E,\10xFF5E,' < $< | ./cjk_tab_to_h JISX0212.1990-0 jisx0212 > $@
316
317cp932ext.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP932.TXT cjk_tab_to_h
318	(echo '#' ; grep '^0x\(87\|E[D-F]\|F[0-9A-F]\)[0-9A-F][0-9A-F]' < $< ) | ./cjk_tab_to_h 'CP932 extensions' cp932ext > $@
319
320gb2312.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/GB/GB2312.TXT cjk_tab_to_h
321	./cjk_tab_to_h GB2312.1980-0 gb2312 < $< > $@
322
323isoir165ext.h : $(TABLESDIR)/csets-new/ISO-IR-165-additions.TXT cjk_tab_to_h
324	(echo '#' ; grep -v '^0x2[8A]' < $<) | ./cjk_tab_to_h 'ISO-IR-165 extensions' isoir165ext > $@
325
326gb12345ext.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/GB/GB2312.TXT $(TABLESDIR)/unicode.org-mappings/EASTASIA/GB/GB12345-FIXED.TXT $(TABLESDIR)/csets-new/GB12345-more.TXT cjk_tab_to_h
327	(echo '#' ; sed -e '/^0x..[ 	]*#UNDEFINED/d' -e 's/#.*$$//' -e '/^[ 	]*$$/d' $(TABLESDIR)/unicode.org-mappings/EASTASIA/GB/GB2312.TXT > tmp1.TXT ; sed -e '/^0x..[ 	]*#UNDEFINED/d' -e 's/#.*$$//' -e '/^[ 	]*$$/d' $(TABLESDIR)/unicode.org-mappings/EASTASIA/GB/GB12345-FIXED.TXT > tmp2.TXT ; diff tmp1.TXT tmp2.TXT | grep '^> ' | sed -e 's,^> ,,' ; cat $(TABLESDIR)/csets-new/GB12345-more.TXT ) | ./cjk_tab_to_h 'GB/T 12345.1990-0 extensions' gb12345ext > $@ && rm -f tmp1.TXT tmp2.TXT
328
329gbkext1.h : GBKext.TXT cjk_tab_to_h
330	(echo '#' ; grep '^0x\([89].\|A0\)' < GBKext.TXT) | ./cjk_tab_to_h 'GBK/3 extensions' gbkext1 > $@
331
332gbkext2.h : GBKext.TXT cjk_tab_to_h
333	(echo '#' ; grep '^0x\(A[1-9A-F]\|[B-F][0-9A-F]\)\([4-9].\|A0\)' < GBKext.TXT) | ./cjk_tab_to_h 'GBK/4 and GBK/5 extensions' gbkext2 > $@
334
335gbkext_inv.h : GBKext.TXT cjk_tab_to_h
336	(echo '#' ; grep '^0x\([89].\|A0\)' < GBKext.TXT ; grep '^0x\(A[1-9A-F]\|[B-F][0-9A-F]\)\([4-9].\|A0\)' < GBKext.TXT) | ./cjk_tab_to_h 'GBK extensions' gbkext_inv > $@
337
338cp936ext.h : GBKext.TXT cjk_tab_to_h
339	(echo '#' ; grep '^0xA[1-9][B-F].' < GBKext.TXT) | ./cjk_tab_to_h 'CP936 extensions' cp936ext > $@
340
341GBKext.TXT : $(TABLESDIR)/unicode.org-mappings/EASTASIA/GB/GB2312.TXT $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP936.TXT
342	sed -e 's,^0x2,0xA,' -e 's,^0x3,0xB,' -e 's,^0x4,0xC,' -e 's,^0x5,0xD,' -e 's,^0x6,0xE,' -e 's,^0x7,0xF,' -e 's,^0x\(..\)2,0x\1A,' -e 's,^0x\(..\)3,0x\1B,' -e 's,^0x\(..\)4,0x\1C,' -e 's,^0x\(..\)5,0x\1D,' -e 's,^0x\(..\)6,0x\1E,' -e 's,^0x\(..\)7,0x\1F,' $(TABLESDIR)/unicode.org-mappings/EASTASIA/GB/GB2312.TXT > tmpEUCCN.TXT ; sed -e '/^0x..[ 	]*#UNDEFINED/d' -e 's/#.*$$//' -e '/^[ 	]*$$/d' tmpEUCCN.TXT > tmp1.TXT ; sed -e '/^0x..[ 	]/d' -e 's/#.*$$//' -e '/^[ 	]*$$/d' $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP936.TXT > tmp2.TXT ; diff -c1 tmp1.TXT tmp2.TXT | grep '^+ ' | sed -e 's,^+ ,,' > $@ && rm -f tmpEUCCN.TXT tmp1.TXT tmp2.TXT
343
344gb18030ext.h : GB18030ext.TXT cjk_tab_to_h
345	(echo '#' ; cat GB18030ext.TXT) | ./cjk_tab_to_h 'GB18030 two-byte extension' gb18030ext > $@
346
347GB18030ext.TXT : $(TABLESDIR)/glibc-2.2.2-iconv/GB18030.TXT $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP936.TXT
348	cat $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP936.TXT | sed -e 's/[ 	]*#.*$$//' | grep '^0x[0-9A-F]*	0x....$$' > tmpGBK.TXT ; diff tmpGBK.TXT $(TABLESDIR)/glibc-2.2.2-iconv/GB18030.TXT | grep '^> 0x....	0x....$$' | sed -e 's/^> //' > $@ && rm -f tmpGBK.TXT
349
350gb18030uni.h : GB18030uni.TXT cjk_tab_to_h
351	./cjk_tab_to_h 'GB18030 four-byte extension' gb18030uni < GB18030uni.TXT > $@
352
353GB18030uni.TXT : $(TABLESDIR)/gb18030/filled-GB18030.TXT
354	grep '^0x........	0x....$$' < $(TABLESDIR)/gb18030/filled-GB18030.TXT > $@
355
356cns11643_1.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h
357	grep '^\(#\|0x1\)' < $< | sed -e 's,^0x1,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 1' cns11643_1 > $@
358
359cns11643_2.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h
360	grep '^\(#\|0x2\)' < $< | sed -e 's,^0x2,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 2' cns11643_2 > $@
361
362cns11643_3.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h
363	grep '^\(#\|0x3\)' < $< | sed -e 's,^0x3,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 3' cns11643_3 > $@
364
365cns11643_4a.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h
366	grep '^\(#\|0x4[0-3]\)' < $< | sed -e 's,^0x4,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 4 part a' cns11643_4a > $@
367
368cns11643_4b.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h
369	grep '^\(#\|0x4[4-7]\)' < $< | sed -e 's,^0x4,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 4 part b' cns11643_4b > $@
370
371cns11643_5.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h
372	grep '^\(#\|0x5\)' < $< | sed -e 's,^0x5,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 5' cns11643_5 > $@
373
374cns11643_6.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h
375	grep '^\(#\|0x6\)' < $< | sed -e 's,^0x6,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 6' cns11643_6 > $@
376
377cns11643_7.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h
378	grep '^\(#\|0x7\)' < $< | sed -e 's,^0x7,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 7' cns11643_7 > $@
379
380cns11643_15.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h
381	grep '^\(#\|0xF\)' < $< | sed -e 's,^0xF,0x,' | ./cjk_tab_to_h 'CNS 11643-1992 plane 15' cns11643_15 > $@
382
383cns11643_inv.h : $(TABLESDIR)/csets-new/CNS11643-Unicode32.TXT cjk_tab_to_h
384	./cjk_tab_to_h 'CNS 11643-1992 planes 1-7, CNS 11643-1986 plane 15' cns11643_inv < $< > $@
385
386big5.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/OTHER/BIG5.TXT cjk_tab_to_h
387	./cjk_tab_to_h BIG5 big5 < $< > $@
388
389cp950ext.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/WINDOWS/CP950.TXT cjk_tab_to_h
390	(echo '#' ; grep '^0xF9\(D[6-9A-F]\|[EF][0-9A-F]\)' < $< ) | ./cjk_tab_to_h 'CP950 extensions' cp950ext > $@
391
392hkscs.h : $(TABLESDIR)/big5hkscs/HKSCS.TXT cjk_tab_to_h
393	(echo '#' ; cat $<) | ./cjk_tab_to_h HKSCS hkscs > $@
394
395# We use a modified KSC 5601 = KSX 1001 table. Jungshik Shin <jshin@mailaps.org>
396# reports that Prof. GIM Geongseog (KIM Keyongseok) <gimgs@asadal.cs.pusan.ac.kr>
397# (who represents South Korea in ISO/IEC JTC1 SC2/WG2 and SC22/WG20) says that
398# these two characters were added to KSX 1001 in December 1998, and one more
399# (Korean zip code sign) is likely to follow in 2002.
400ksc5601.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/KSC/KSC5601.TXT cjk_tab_to_h
401	(cat $< ; echo '0xA2E6	0x20AC'; echo '0xA2E7	0x00AE') | ./cjk_tab_to_h KSC5601.1987-0 ksc5601 > $@
402
403uhc_1.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/KSC/KSC5601.TXT cjk_tab_to_h
404	(echo '#' ; grep '^0x\([8-9]\|A0\)' < $< ) | ./cjk_tab_to_h 'Unified Hangul Code part 1' uhc_1 > $@
405
406uhc_2.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/KSC/KSC5601.TXT cjk_tab_to_h
407	(echo '#' ; grep '^0x\(A[1-9A-F]\|[B-F][0-9A-F]\)\([0-9]\|A0\)' < $< ) | ./cjk_tab_to_h 'Unified Hangul Code part 2' uhc_2 > $@
408
409johab_hangul.h : $(TABLESDIR)/unicode.org-mappings/EASTASIA/KSC/JOHAB.TXT cjk_tab_to_h
410	(echo '#' ; grep '^0x\([8-C]...\|D[0-7]..\)' < $< ) | ./cjk_tab_to_h 'JOHAB Hangul' johab_hangul > $@
411
412
413cp856.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MISC/CP856.TXT 8bit_tab_to_h
414	./8bit_tab_to_h CP856 cp856 < $<
415
416cp922.h : $(TABLESDIR)/aix-4.3.2/IBM-922.TXT 8bit_tab_to_h
417	(echo '#' ; cat $<) | ./8bit_tab_to_h CP922 cp922
418
419cp1046.h : $(TABLESDIR)/aix-4.3.2/IBM-1046.TXT 8bit_tab_to_h
420	(echo '#' ; cat $<) | ./8bit_tab_to_h CP1046 cp1046
421
422cp1124.h : $(TABLESDIR)/aix-4.3.2/IBM-1124.TXT 8bit_tab_to_h
423	(echo '#' ; cat $<) | ./8bit_tab_to_h CP1124 cp1124
424
425cp1129.h : $(TABLESDIR)/aix-4.3.2/IBM-1129.TXT 8bit_tab_to_h
426	(echo '#' ; cat $<) | ./8bit_tab_to_h CP1129 cp1129
427
428cp1161.h : $(TABLESDIR)/glibc-2.2.90-iconv/IBM1161.TXT
429	(echo '#' ; cat $(TABLESDIR)/glibc-2.2-iconv/ASCII.TXT ; grep -v '^0x[0-7]' $<) | ./8bit_tab_to_h CP1161 cp1161
430
431cp1162.h : $(TABLESDIR)/glibc-2.2.90-iconv/IBM1162.TXT
432	(echo '#' ; cat $<) | ./8bit_tab_to_h CP1162 cp1162
433
434cp1163.h : $(TABLESDIR)/glibc-2.2.90-iconv/IBM1163.TXT
435	(echo '#' ; cat $<) | ./8bit_tab_to_h CP1163 cp1163
436
437
438cp437.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP437.TXT 8bit_tab_to_h
439	./8bit_tab_to_h CP437 cp437 < $<
440
441cp737.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP737.TXT 8bit_tab_to_h
442	./8bit_tab_to_h CP737 cp737 < $<
443
444cp775.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP775.TXT 8bit_tab_to_h
445	./8bit_tab_to_h CP775 cp775 < $<
446
447cp852.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP852.TXT 8bit_tab_to_h
448	./8bit_tab_to_h CP852 cp852 < $<
449
450cp853.h : $(TABLESDIR)/other/CP853.TXT 8bit_tab_to_h
451	(echo '#'; cat $<) | ./8bit_tab_to_h CP853 cp853
452
453cp855.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP855.TXT 8bit_tab_to_h
454	./8bit_tab_to_h CP855 cp855 < $<
455
456cp857.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP857.TXT 8bit_tab_to_h
457	./8bit_tab_to_h CP857 cp857 < $<
458
459cp858.h : $(TABLESDIR)/windows-2000/CP858.TXT 8bit_tab_to_h
460	(echo '#' ; cat $<) | ./8bit_tab_to_h CP858 cp858
461
462cp860.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP860.TXT 8bit_tab_to_h
463	./8bit_tab_to_h CP860 cp860 < $<
464
465cp861.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP861.TXT 8bit_tab_to_h
466	./8bit_tab_to_h CP861 cp861 < $<
467
468cp863.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP863.TXT 8bit_tab_to_h
469	./8bit_tab_to_h CP863 cp863 < $<
470
471cp864.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP864.TXT 8bit_tab_to_h
472	./8bit_tab_to_h CP864 cp864 < $<
473
474cp865.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP865.TXT 8bit_tab_to_h
475	./8bit_tab_to_h CP865 cp865 < $<
476
477cp869.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MICSFT/PC/CP869.TXT 8bit_tab_to_h
478	./8bit_tab_to_h CP869 cp869 < $<
479
480cp1125.h : $(TABLESDIR)/csets-new/CP1125.TXT 8bit_tab_to_h
481	./8bit_tab_to_h CP1125 cp1125 < $<
482
483
484jisx0213.h : JISX0213.TXT cjk_tab_to_h
485	./cjk_tab_to_h JISX0213:2004 jisx0213 < $< > $@
486
487tds565.h : $(TABLESDIR)/recode-cvs/TDS565.TXT 8bit_tab_to_h
488	(echo '#'; cat $<) | ./8bit_tab_to_h TDS565 tds565 > $@
489
490atarist.h : $(TABLESDIR)/unicode.org-mappings/VENDORS/MISC/ATARIST.TXT
491	./8bit_tab_to_h 'Atari ST' atarist < $< > $@
492
493riscos1.h : $(TABLESDIR)/recode-cvs/RISCOS-LATIN1.TXT 8bit_tab_to_h
494	(echo '#'; cat $<) | ./8bit_tab_to_h RISCOS-LATIN1 riscos1 > $@
495
496
497cjk_variants.h : $(TABLESDIR)/yasuoka/UniVariants cjk_variants
498	./cjk_variants < $< > $@
499
500
5018bit_tab_to_h : 8bit_tab_to_h.c
502	gcc -O -Wall -g $< -o $@
503
504cjk_tab_to_h : cjk_tab_to_h.c
505	gcc -O -Wall -g $< -o $@
506
507cjk_variants : cjk_variants.c
508	gcc -O -Wall -g $< -o $@
509
510
511clean : force
512	rm -f 8bit_tab_to_h cjk_tab_to_h cjk_variants $(ALL) GBKext.TXT
513
514force :
515
516