]>
Commit | Line | Data |
---|---|---|
31331e3a | 1 | # Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc. |
f4017d20 UD |
2 | # This file is part of the GNU C Library. |
3 | ||
4 | # The GNU C Library is free software; you can redistribute it and/or | |
5 | # modify it under the terms of the GNU Library General Public License as | |
6 | # published by the Free Software Foundation; either version 2 of the | |
7 | # License, or (at your option) any later version. | |
8 | ||
9 | # The GNU C Library is distributed in the hope that it will be useful, | |
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
12 | # Library General Public License for more details. | |
13 | ||
14 | # You should have received a copy of the GNU Library General Public | |
15 | # License along with the GNU C Library; see the file COPYING.LIB. If | |
16 | # not, write to the Free Software Foundation, Inc., | |
17 | # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | ||
19 | # | |
20 | # Makefile for iconv data and code. | |
21 | # | |
22 | subdir := iconvdata | |
23 | ||
24 | # Names of all the shared objects which implement the transformations. | |
9b26f5c4 UD |
25 | modules := ISO8859-1 ISO8859-2 ISO8859-3 ISO8859-4 ISO8859-5 \ |
26 | ISO8859-6 ISO8859-7 ISO8859-8 ISO8859-9 ISO8859-10 \ | |
7abbb474 | 27 | ISO8859-11 ISO8859-13 ISO8859-14 ISO8859-15 ISO8859-16 \ |
30373ded UD |
28 | T.61 ISO_6937 SJIS KOI-8 HP-ROMAN8 EBCDIC-AT-DE \ |
29 | EBCDIC-AT-DE-A EBCDIC-CA-FR EUC-KR UHC JOHAB libJIS libKSC \ | |
30 | BIG5 EUC-JP libGB EUC-CN libCNS EUC-TW ISO646 EBCDIC-DK-NO \ | |
31 | EBCDIC-DK-NO-A EBCDIC-ES EBCDIC-ES-A EBCDIC-ES-S EBCDIC-FI-SE \ | |
32 | EBCDIC-FI-SE-A EBCDIC-FR EBCDIC-IS-FRISS EBCDIC-IT EBCDIC-PT \ | |
b48abe3c | 33 | EBCDIC-UK EBCDIC-US IBM037 IBM038 IBM274 IBM275 IBM423 \ |
f4a20e28 | 34 | IBM500 IBM870 IBM871 IBM891 IBM903 IBM904 IBM905 IBM1047 \ |
4510507b | 35 | IBM874 CP737 CP775 ISO-2022-KR \ |
fed8f7f7 | 36 | KOI8-R LATIN-GREEK LATIN-GREEK-1 IBM256 IBM273 IBM277 IBM278 \ |
b48abe3c UD |
37 | IBM280 IBM281 IBM284 IBM285 IBM290 IBM297 IBM420 IBM424 \ |
38 | IBM437 IBM850 IBM851 IBM852 IBM855 IBM857 IBM860 IBM861 \ | |
39 | IBM862 IBM863 IBM864 IBM865 IBM868 IBM869 IBM875 IBM880 \ | |
88fd9830 | 40 | IBM866 CP1258 \ |
b48abe3c | 41 | IBM918 IBM1004 IBM1026 CP1250 CP1251 CP1252 CP1253 CP1254 \ |
31331e3a | 42 | CP1255 CP1256 CP1257 ISO-2022-JP MACINTOSH IEC_P27-1 \ |
37d84717 UD |
43 | ASMO_449 ANSI_X3.110 CSN_369103 CWI DEC-MCS ECMA-CYRILLIC \ |
44 | GOST_19768-74 GREEK-CCITT GREEK7 GREEK7-OLD INIS INIS-8 \ | |
45 | INIS-CYRILLIC ISO_6937-2 ISO_2033 ISO_5427 ISO_5427-EXT \ | |
0f6052a8 | 46 | ISO_5428 ISO_10367-BOX MAC-IS MAC-UK NATS-DANO NATS-SEFI \ |
15a2315c | 47 | SAMI-WS2 ISO-IR-197 TIS-620 KOI8-U GBK ISIRI-3342 GBGBK \ |
cfd14df5 | 48 | ISO-2022-CN libISOIR165 UTF-16 UNICODE BIG5HKSCS GB18030 |
f4017d20 | 49 | |
fed8f7f7 | 50 | modules.so := $(addsuffix .so, $(modules)) |
f4017d20 | 51 | |
b4f95b74 | 52 | tests = bug-iconv1 bug-iconv2 tst-loading |
cf970a32 | 53 | |
04be94a8 UD |
54 | include ../Makeconfig |
55 | ||
04be94a8 | 56 | libJIS-routines := jis0201 jis0208 jis0212 |
a44d2393 | 57 | libKSC-routines := ksc5601 |
40b4c81d | 58 | libGB-routines := gb2312 |
2b474353 | 59 | libCNS-routines := cns11643l1 cns11643 |
c456edaa | 60 | libISOIR165-routines := iso-ir-165 |
04be94a8 | 61 | |
118bad87 | 62 | LDFLAGS-EUC-KR.so = -Wl,-rpath,'$$ORIGIN' |
e784ad6a | 63 | $(objpfx)EUC-KR.so: $(objpfx)libKSC.so |
118bad87 | 64 | LDFLAGS-JOHAB.so = -Wl,-rpath,'$$ORIGIN' |
e784ad6a | 65 | $(objpfx)JOHAB.so: $(objpfx)libKSC.so |
118bad87 | 66 | LDFLAGS-UHC.so = -Wl,-rpath,'$$ORIGIN' |
cab24c37 | 67 | $(objpfx)UHC.so: $(objpfx)libKSC.so |
118bad87 | 68 | LDFLAGS-EUC-JP.so = -Wl,-rpath,'$$ORIGIN' |
40b4c81d | 69 | $(objpfx)EUC-JP.so: $(objpfx)libJIS.so |
118bad87 | 70 | LDFLAGS-EUC-CN.so = -Wl,-rpath,'$$ORIGIN' |
40b4c81d | 71 | $(objpfx)EUC-CN.so: $(objpfx)libGB.so |
118bad87 | 72 | LDFLAGS-EUC-TW.so = -Wl,-rpath,'$$ORIGIN' |
2b474353 | 73 | $(objpfx)EUC-TW.so: $(objpfx)libCNS.so |
e784ad6a | 74 | |
118bad87 | 75 | LDFLAGS-ISO-2022-JP.so = -Wl,-rpath,'$$ORIGIN' |
918b9d72 | 76 | $(objpfx)ISO-2022-JP.so: $(objpfx)libJIS.so $(objpfx)libGB.so \ |
8babd571 | 77 | $(objpfx)libCNS.so $(objpfx)libKSC.so |
118bad87 | 78 | LDFLAGS-ISO-2022-KR.so = -Wl,-rpath,'$$ORIGIN' |
e3e0a182 | 79 | $(objpfx)ISO-2022-KR.so: $(objpfx)libKSC.so |
15a2315c UD |
80 | LDFLAGS-ISO-2022-CN.so = -Wl,-rpath,'$$ORIGIN' |
81 | $(objpfx)ISO-2022-CN.so: $(objpfx)libGB.so $(objpfx)libCNS.so | |
918b9d72 | 82 | |
cab24c37 UD |
83 | LDFLAGS-libJIS.so = -Wl,-soname,$(@F) |
84 | LDFLAGS-libKSC.so = -Wl,-soname,$(@F) | |
40b4c81d | 85 | LDFLAGS-libGB.so = -Wl,-soname,$(@F) |
2b474353 | 86 | LDFLAGS-libCNS.so = -Wl,-soname,$(@F) |
c456edaa | 87 | LDFLAGS-libISOIR165.so = -Wl,-soname,$(@F) |
71bedb76 | 88 | |
118bad87 UD |
89 | distribute := gconv-modules extra-module.mk gap.awk gaptab.awk \ |
90 | gen-8bit.sh gen-8bit-gap.sh gen-8bit-gap-1.sh \ | |
b3ed8219 AS |
91 | TESTS $(filter-out testdata/CVS%, $(wildcard testdata/*)) \ |
92 | run-iconv-test.sh 8bit-generic.c 8bit-gap.c \ | |
31331e3a | 93 | ansi_x3.110.c asmo_449.c big5.c cp737.c cp737.h \ |
4510507b | 94 | cp775.c cp775.h ibm874.c cns11643.c cns11643.h \ |
118bad87 | 95 | cns11643l1.c cns11643l1.h cp1250.c cp1251.c cp1252.c cp1253.c \ |
99179803 | 96 | cp1254.c cp1255.c cp1256.c cp1257.c cp1258.c \ |
118bad87 UD |
97 | csn_369103.c cwi.c dec-mcs.c ebcdic-at-de.c ebcdic-at-de-a.c \ |
98 | ebcdic-ca-fr.c ebcdic-dk-no.c ebcdic-dk-no-a.c ebcdic-es.c \ | |
99 | ebcdic-es-a.c ebcdic-es-s.c ebcdic-fr.c ebcdic-fi-se.c \ | |
100 | ebcdic-fi-se-a.c ebcdic-is-friss.c ebcdic-it.c ebcdic-pt.c \ | |
101 | ebcdic-uk.c ebcdic-us.c ecma-cyrillic.c euc-cn.c euc-jp.c \ | |
55587efd | 102 | euc-kr.c euc-tw.c gb2312.c gb2312.h gbk.c gost_19768-74.c \ |
118bad87 UD |
103 | greek-ccitt.c greek7.c greek7-old.c hp-roman8.c ibm037.c \ |
104 | ibm038.c ibm256.c ibm273.c ibm274.c ibm275.c ibm277.c \ | |
105 | ibm278.c ibm280.c ibm281.c ibm284.c ibm285.c ibm290.c \ | |
106 | ibm297.c ibm420.c ibm423.c ibm424.c ibm437.c ibm500.c \ | |
107 | ibm850.c ibm851.c ibm852.c ibm855.c ibm857.c ibm860.c \ | |
108 | ibm861.c ibm862.c ibm863.c ibm864.c ibm865.c ibm866.c \ | |
109 | ibm868.c ibm869.c ibm870.c ibm871.c ibm875.c ibm880.c \ | |
110 | ibm891.c ibm903.c ibm904.c ibm905.c ibm918.c ibm1004.c \ | |
111 | ibm1026.c ibm1047.c iec_p27-1.c inis.c inis-8.c \ | |
112 | inis-cyrillic.c iso-2022-jp.c iso-2022-kr.c iso646.c \ | |
b9b49b44 UD |
113 | iso8859-1.c iso8859-2.c iso8859-3.c iso8859-4.c iso8859-5.c \ |
114 | iso8859-6.c iso8859-7.c iso8859-8.c iso8859-9.c iso8859-10.c \ | |
c090aa15 | 115 | iso8859-11.c iso8859-11.h iso8859-13.c iso8859-14.c \ |
118bad87 UD |
116 | iso8859-15.c iso_2033.c iso_5427-ext.c iso_5427.c iso_5428.c \ |
117 | iso_6937.c iso_6937-2.c iso_10367-box.c jis0201.c jis0201.h \ | |
118 | jis0208.c jis0208.h jis0212.c jis0212.h johab.c koi-8.c \ | |
119 | koi8-r.c ksc5601.c ksc5601.h latin-greek.c latin-greek-1.c \ | |
120 | macintosh.c mac-is.c mac-uk.c nats-dano.c nats-sefi.c sjis.c \ | |
c2ed3877 | 121 | t.61.c uhc.c sami-ws2.c iso-ir-197.c tis-620.c koi8-u.c \ |
5cc90078 AJ |
122 | isiri-3342.c isiri-3342.h gbgbk.c iso-2022-cn.c cns11643l2.h \ |
123 | iso8859-16.c utf-16.c unicode.c big5hkscs.c iso-ir-165.c \ | |
124 | iso-ir-165.h gb18030.c | |
f4017d20 UD |
125 | |
126 | # We build the transformation modules only when we build shared libs. | |
127 | ifeq (yes,$(build-shared)) | |
128 | ||
f4017d20 | 129 | # Rule to generate the shared objects. |
118bad87 | 130 | charmaps = ../localedata/charmaps |
118bad87 | 131 | -include $(objpfx)iconv-rules |
f4017d20 UD |
132 | extra-modules-left := $(modules) |
133 | include extra-module.mk | |
134 | ||
135 | ||
136 | extra-objs += $(modules.so) | |
137 | install-others = $(addprefix $(inst_gconvdir)/, $(modules.so)) \ | |
138 | $(inst_gconvdir)/gconv-modules | |
139 | ||
140 | # If we have the localedata add-on available we can build the conversion | |
141 | # tables for numerous charsets. | |
b17277cf | 142 | |
118bad87 UD |
143 | gen-8bit-modules := iso8859-2 iso8859-3 iso8859-4 iso8859-6 iso8859-9 koi-8 \ |
144 | hp-roman8 ebcdic-at-de ebcdic-at-de-a ebcdic-ca-fr \ | |
145 | ebcdic-dk-no ebcdic-dk-no-a ebcdic-es ebcdic-es-a \ | |
146 | ebcdic-es-s ebcdic-fi-se ebcdic-fi-se-a ebcdic-fr \ | |
147 | ebcdic-is-friss ebcdic-it ebcdic-pt ebcdic-uk ebcdic-us \ | |
148 | ibm037 ibm038 ibm274 ibm275 ibm423 ibm500 ibm870 ibm871 \ | |
7abbb474 | 149 | ibm891 ibm903 ibm904 ibm905 ibm1047 iso8859-16 |
118bad87 UD |
150 | |
151 | gen-8bit-gap-modules := koi8-r latin-greek latin-greek-1 ibm256 ibm273 \ | |
152 | ibm277 ibm278 ibm280 ibm281 ibm284 ibm285 ibm290 \ | |
153 | ibm297 ibm420 ibm424 ibm437 ibm850 ibm851 ibm852 \ | |
154 | ibm855 ibm857 ibm860 ibm861 ibm862 ibm863 ibm864 \ | |
155 | ibm865 ibm868 ibm869 ibm875 ibm880 ibm918 ibm1004 \ | |
156 | ibm1026 cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 \ | |
157 | cp1256 cp1257 ibm866 iso8859-5 iso8859-7 iso8859-8 \ | |
31331e3a | 158 | iso8859-10 macintosh iec_p27-1 asmo_449 \ |
118bad87 UD |
159 | csn_369103 cwi dec-mcs ecma-cyrillic gost_19768-74 \ |
160 | greek-ccitt greek7 greek7-old inis inis-8 \ | |
161 | inis-cyrillic iso_2033 iso_5427 iso_5427-ext \ | |
162 | iso_5428 iso_10367-box mac-is nats-dano nats-sefi \ | |
0f6052a8 | 163 | iso8859-13 iso8859-14 iso8859-15 mac-uk sami-ws2 \ |
5134584a | 164 | iso-ir-197 cp1258 tis-620 koi8-u ibm874 |
118bad87 UD |
165 | |
166 | gen-special-modules := iso8859-7jp | |
167 | ||
168 | generated-modules := $(gen-8bit-modules) $(gen-8bit-gap-modules) \ | |
169 | $(gen-special-modules) | |
170 | ||
171 | generated = $(generated-modules:=.h) $(generated-modules:=.stmp) \ | |
b2fe29dd | 172 | iconv-test.out iconv-rules tst-loading.mtrace mtrace-tst-loading |
118bad87 UD |
173 | ifdef objpfx |
174 | generated += gconv-modules | |
175 | endif | |
176 | ||
177 | # Rules to generate the headers. | |
178 | export AWK | |
179 | ||
f4017d20 | 180 | define generate-8bit-table |
0111b224 | 181 | $(make-target-directory) |
b17277cf UD |
182 | $(SHELL) ./gen-8bit.sh $< > $(@:stmp=T) |
183 | $(move-if-change) $(@:stmp=T) $(@:stmp=h) | |
184 | touch $@ | |
04be94a8 UD |
185 | endef |
186 | ||
04be94a8 | 187 | define generate-8bit-gap-table |
0111b224 | 188 | $(make-target-directory) |
fed8f7f7 | 189 | $(SHELL) ./gen-8bit-gap.sh $< > $(@:stmp=T) |
b17277cf UD |
190 | $(move-if-change) $(@:stmp=T) $(@:stmp=h) |
191 | touch $@ | |
f4017d20 UD |
192 | endef |
193 | ||
04be94a8 | 194 | # The headers must be generated before the compilation. |
118bad87 | 195 | before-compile = $(addprefix $(objpfx),$(generated-modules:=.h)) |
04be94a8 | 196 | |
407a7d0e | 197 | ifndef avoid-generated |
118bad87 UD |
198 | $(objpfx)iconv-rules: Makefile |
199 | $(make-target-directory) | |
200 | { echo $(filter-out lib%, $(modules)); \ | |
201 | echo 8bit $(gen-8bit-modules); \ | |
202 | echo 8bit-gap $(gen-8bit-gap-modules); } | \ | |
203 | $(AWK) 'NR == 1 { \ | |
204 | for (i = 1; i <= NF; i++) \ | |
205 | printf "%s-routines := %s\n", $$i, tolower($$i); \ | |
206 | }; \ | |
207 | NR > 1 { \ | |
208 | for (i = 2; i <= NF; i++) { \ | |
209 | printf "$$(objpfx)%s.stmp: ", $$i; \ | |
210 | map = toupper($$i); \ | |
211 | sub(/^ISO8859/, "ISO-8859", map); \ | |
212 | if (map == "ISO_2033") map = map "-1983"; \ | |
213 | printf "$$(charmaps)/%s ", map; \ | |
214 | printf "gen-%s.sh\n", $$1; \ | |
215 | printf "\t$$(generate-%s-table)\n", $$1; \ | |
216 | } \ | |
217 | }' > $@.new | |
218 | mv -f $@.new $@ | |
407a7d0e | 219 | endif |
118bad87 UD |
220 | |
221 | $(generated-modules:%=$(objpfx)%.h): $(objpfx)%.h: $(objpfx)%.stmp | |
b17277cf UD |
222 | @: |
223 | ||
118bad87 UD |
224 | $(gen-8bit-modules:%=$(objpfx)%.stmp): $(objpfx)%.stmp: $(objpfx)iconv-rules |
225 | $(gen-8bit-gap-modules:%=$(objpfx)%.stmp): $(objpfx)%.stmp: $(objpfx)iconv-rules | |
3cb0cda8 | 226 | |
118bad87 | 227 | $(objpfx)iso8859-7jp.stmp: $(charmaps)/ISO-8859-7 gen-8bit-gap-1.sh |
b17277cf | 228 | $(make-target-directory) |
118bad87 | 229 | $(SHELL) ./gen-8bit-gap-1.sh $< > $(@:stmp=T) |
b17277cf UD |
230 | $(move-if-change) $(@:stmp=T) $(@:stmp=h) |
231 | touch $@ | |
232 | ||
118bad87 | 233 | headers: $(addprefix $(objpfx), $(generated-modules:=.h)) |
f4017d20 | 234 | |
73237de3 UD |
235 | $(addprefix $(inst_gconvdir)/, $(modules.so)): \ |
236 | $(inst_gconvdir)/%: $(objpfx)% $(+force) | |
f4017d20 | 237 | $(do-install-program) |
73237de3 | 238 | $(inst_gconvdir)/gconv-modules: gconv-modules $(+force) |
f4017d20 | 239 | $(do-install) |
118bad87 UD |
240 | |
241 | endif # build-shared = yes | |
f4017d20 UD |
242 | |
243 | include ../Rules | |
f1fa8b68 | 244 | |
97a0d44d | 245 | ifeq (no,$(cross-compiling)) |
df455ccb | 246 | ifeq (yes,$(build-shared)) |
b2fe29dd | 247 | tests: $(objpfx)iconv-test.out $(objpfx)mtrace-tst-loading |
df455ccb | 248 | endif |
97a0d44d | 249 | endif |
f1fa8b68 | 250 | |
b2fe29dd UD |
251 | tst-loading-ENV = MALLOC_TRACE=$(objpfx)tst-loading.mtrace |
252 | $(objpfx)mtrace-tst-loading: $(objpfx)tst-loading.out | |
253 | $(common-objpfx)malloc/mtrace $(objpfx)tst-loading.mtrace > $@ | |
254 | ||
700f371b AJ |
255 | $(objpfx)bug-iconv1.out: $(objpfx)gconv-modules |
256 | ||
4b8f94d3 UD |
257 | $(objpfx)iconv-test.out: run-iconv-test.sh $(objpfx)gconv-modules \ |
258 | $(addprefix $(objpfx),$(modules.so)) \ | |
13d9048a | 259 | $(common-objdir)/iconv/iconv_prog TESTS |
4b8f94d3 | 260 | $(SHELL) -e $< $(common-objdir) > $@ |
f1fa8b68 | 261 | |
4b8f94d3 | 262 | ifdef objpfx |
f1fa8b68 UD |
263 | $(objpfx)gconv-modules: gconv-modules |
264 | cp $^ $@ | |
4b8f94d3 | 265 | endif |