4006 Certain printable unicode characters misclassified as nonprintable
5227 space should be automatically included in 'print' class by localedef
1 #
2 # This file and its contents are supplied under the terms of the
3 # Common Development and Distribution License ("CDDL"), version 1.0.
4 # You may only use this file in accordance with the terms of version
5 # 1.0 of the CDDL.
6 #
7 # A full copy of the text of the CDDL should have accompanied this
8 # source. A copy of the CDDL is also available via the Internet at
9 # http://www.illumos.org/license/CDDL.
10 #
11
12 #
13 # Copyright 2011 Nexenta Systems, Inc. All rights reserved.
14 # Copyright 2011 EveryCity Ltd. All rights reserved.
15 # Copyright 2013 DEY Storage Systems, Inc.
16 #
17
18 PROG=localedef
19
20 include ../Makefile.cmd
21
22 OBJS = charmap.o collate.o ctype.o messages.o monetary.o numeric.o time.o \
23 scanner.o localedef.o wide.o parser.tab.o
24
25 HDRS = localedef.h
26
27 SRCS = $(OBJS:%.o=%.c)
28
29 CPPFLAGS += -I $(SRC)/lib/libc/port/locale
30 CERRWARN += -_gcc=-Wno-char-subscripts
31 CERRWARN += -_gcc=-Wno-uninitialized
32 CERRWARN += -_gcc=-Wno-unused-label
33 LDLIBS += -lgen
34 LDLIBS += -lavl
35 YFLAGS = -d -b parser
36
37 CLEANFILES = $(OBJS) parser.tab.c parser.tab.h
38 CLEANFILES += \
39 UTF-8.cm UTF-8.ct \
40 8859-1.cm 8859-2.cm 8859-3.cm 8859-4.cm \
41 8859-5.cm 8859-5.cm 8859-6.cm 8859-7.cm \
42 8859-8.cm 8859-9.cm 8859-9.cm 8859-10.cm \
43 8859-11.cm 8859-13.cm 8859-14.cm 8859-15.cm \
44 8859-16.cm \
45 KOI8-R.cm
46 CLOBBERFILES = $(PROG) $(POFILE) \
47 GB18030.cm UTF-8.cm
48
49 PIFILES = $(OBJS:%.o=%.i)
50 POFILE = localedef_cmd.po
51
52 ISO8859_1_LOCALES = \
53 da_DK \
54 de_CH \
55 en_AU en_CA en_GB en_NZ en_US \
56 es_AR es_BO es_CL es_CO es_EC es_GT es_MX es_NI es_PA \
57 es_PE es_SV es_UY es_VE \
58 fr_CA fr_CH \
59 is_IS \
60 it_CH \
61 sv_SE
62
63 ISO8859_2_LOCALES = \
64 cs_CZ \
65 hr_HR \
66 hu_HU \
67 pl_PL \
68 sq_AL
69
70 ISO8859_5_LOCALES = \
71 bg_BG \
72 mk_MK \
73 ru_RU
74
75 ISO8859_6_LOCALES =
76
77 ISO8859_7_LOCALES = \
78 el_GR
79
80 ISO8859_9_LOCALES = \
81 tr_TR
82
83 ISO8859_11_LOCALES = \
84 th_TH
85
86 ISO8859_13_LOCALES = \
87 lt_LT \
88 lv_LV
89
90 ISO8859_15_LOCALES = \
91 ca_ES \
92 da_DK \
93 de_AT de_DE \
94 en_GB en_IE en_US \
95 es_ES \
96 fi_FI \
97 fr_BE fr_FR \
98 it_IT \
99 nl_BE nl_NL \
100 pt_PT \
101 sv_FI sv_SE
102
103 KOI8_R_LOCALES = \
104 ru_RU
105
106 GB18030_LOCALES = \
107 zh_CN
108
109 #
110 # All new locales should be in UTF-8 form.
111 #
112 UTF_8_LOCALES = \
113 af_ZA \
114 ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA \
115 ar_OM ar_QA ar_SA ar_TN ar_YE \
116 as_IN \
117 az_AZ \
118 be_BY \
119 bg_BG \
120 bn_BD bn_IN \
121 bo_CN bo_IN \
122 bs_BA \
123 ca_ES \
124 cs_CZ \
125 da_DK \
126 de_AT de_BE de_CH de_DE de_LI de_LU \
127 el_CY el_GR \
128 en_AU en_BW en_BZ en_CA en_GB en_HK en_IE en_IN en_JM en_MH \
129 en_MT en_NA en_NZ en_PH en_PK en_SG en_TT en_US en_ZA en_ZW \
130 es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GQ es_GT \
131 es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY \
132 es_VE \
133 et_EE \
134 fi_FI \
135 fil_PH \
136 fr_BE fr_CA fr_CF fr_CH fr_FR fr_GN fr_LU fr_MC fr_MG fr_ML \
137 fr_NE fr_SN \
138 ga_IE \
139 gu_IN \
140 he_IL \
141 hi_IN \
142 hr_HR \
143 hu_HU \
144 hy_AM \
145 id_ID \
146 ii_CN \
147 is_IS \
148 it_CH it_IT \
149 ja_JP \
150 ka_GE \
151 kk_KZ \
152 km_KH \
153 kn_IN \
154 ko_KR \
155 kok_IN \
156 lt_LT \
157 lv_LV \
158 mk_MK \
159 ml_IN \
160 mn_CN mn_MN \
161 mr_IN \
162 ms_MY \
163 mt_MT \
164 ne_IN ne_NP \
165 nl_BE nl_NL \
166 nb_NO \
167 nn_NO \
168 or_IN \
169 pa_IN pa_PK \
170 pl_PL \
171 pt_BR pt_GW pt_MZ pt_PT \
172 ro_MD ro_RO \
173 ru_MD ru_RU ru_UA \
174 sa_IN \
175 si_LK \
176 sk_SK \
177 sl_SI \
178 sq_AL \
179 sr_BA sr_ME sr_RS \
180 sv_FI sv_SE \
181 ta_IN ta_LK \
182 te_IN \
183 th_TH \
184 tr_TR \
185 uk_UA \
186 ug_CN \
187 ur_IN ur_PK \
188 vi_VN \
189 zh_CN zh_HK zh_MO zh_SG zh_TW
190
191 UTF8SRCS = $(UTF_8_LOCALES:%=data/%.UTF-8.src)
192
193 LOCNAMES = \
194 $(ISO8859_1_LOCALES:%=%.ISO8859-1) \
195 $(ISO8859_2_LOCALES:%=%.ISO8859-2) \
196 $(ISO8859_5_LOCALES:%=%.ISO8859-5) \
197 $(ISO8859_6_LOCALES:%=%.ISO8859-6) \
198 $(ISO8859_7_LOCALES:%=%.ISO8859-7) \
199 $(ISO8859_9_LOCALES:%=%.ISO8859-9) \
200 $(ISO8859_11_LOCALES:%=%.ISO8859-11) \
201 $(ISO8859_13_LOCALES:%=%.ISO8859-13) \
202 $(ISO8859_15_LOCALES:%=%.ISO8859-15) \
203 $(KOI8_R_LOCALES:%=%.KOI8-R) \
204 $(GB18030_LOCALES:%=%.GB18030) \
205 $(UTF_8_LOCALES:%=%.UTF-8)
206
207 LOCDIRS = $(LOCNAMES:%=locale/%)
208
209 STAMPFILES = $(LOCDIRS:%=%/stamp)
210
211 CATDIRS = \
212 $(LOCDIRS:%=%/LC_COLLATE) \
213 $(LOCDIRS:%=%/LC_CTYPE) \
214 $(LOCDIRS:%=%/LC_MESSAGES) \
215 $(LOCDIRS:%=%/LC_MONETARY) \
216 $(LOCDIRS:%=%/LC_NUMERIC) \
217 $(LOCDIRS:%=%/LC_TIME)
218
219 DATA = $(CATDIRS:%=%/LCL_DATA)
220
221 DCOLL = LC_COLLATE/LCL_DATA
222 DCTYPE = LC_CTYPE/LCL_DATA
223 DMSGS = LC_MESSAGES/LCL_DATA
224 DMON = LC_MONETARY/LCL_DATA
225 DNUM = LC_NUMERIC/LCL_DATA
226 DTIME = LC_TIME/LCL_DATA
227
228 ROOTLOCDIRS = $(LOCDIRS:%=$(ROOTLIB)/%)
229 ROOTCATDIRS = $(CATDIRS:%=$(ROOTLIB)/%)
230 ROOTDATA = $(DATA:%=$(ROOTLIB)/%)
231
232 $(ROOTDATA) := FILEMODE=0444
233
234 all: $(PROG) $(DATA)
235
236 install: all $(ROOTPROG) $(ROOTDATA)
237
238 $(PROG): $(OBJS)
239 $(LINK.c) $(OBJS) -o $@ $(LDLIBS)
240 $(POST_PROCESS)
241
242 $(OBJS): parser.tab.h
243
244 parser.tab.c parser.tab.h: parser.y $(HDRS)
245 $(YACC) $(YFLAGS) parser.y
246
247 lint: $(SRCS)
248 $(LINT.c) $(CPPFLAGS) $(SRCS)
249
250 clean:
251 $(RM) $(CLEANFILES)
252 $(RM) $(STAMPFILES)
253
254 clobber: clean
255 $(RM) $(CLOBBERFILES)
256 $(RM) -r $(LOCDIRS)
257
258 $(POFILE): $(PIFILES)
259 $(RM) $@
260 $(RM) messages.po
261 $(XGETTEXT) -s $(PIFILES)
262 $(SED) -e '/domain/d' messages.po > $@
263 $(RM) $(PIFILES) messages.po
264
265 locale $(ROOTLOCDIRS) $(ROOTCATDIRS):
266 $(INS.dir)
267
268 $(ROOTBIN)/%: $(ROOTBIN) %
269 $(INS.file)
270
271 # Strip LC_CTYPE contents for UTF-8 locales and replace them
272 # with UTF-8.ct we compiled
273 locale/%.UTF-8/stamp: data/%.UTF-8.src UTF-8.cm \
274 UTF-8.ct locale $(PROG)
275 $(SED) '/^LC_CTYPE/,/^END LC_CTYPE/d;$$r UTF-8.ct' $< | \
276 ./$(PROG) -U -w data/widths.txt -f UTF-8.cm $(@D)
277 $(TOUCH) $@
278 locale/%.ISO8859-1/stamp: data/%.UTF-8.src 8859-1.cm locale $(PROG)
279 ./$(PROG) -U -w data/widths.txt -i $< -f 8859-1.cm $(@D)
280 $(TOUCH) $@
281 locale/%.ISO8859-2/stamp: data/%.UTF-8.src 8859-2.cm locale $(PROG)
282 ./$(PROG) -U -w data/widths.txt -i $< -f 8859-2.cm $(@D)
283 $(TOUCH) $@
284 locale/%.ISO8859-5/stamp: data/%.UTF-8.src 8859-5.cm locale $(PROG)
285 ./$(PROG) -U -w data/widths.txt -i $< -f 8859-5.cm $(@D)
286 $(TOUCH) $@
287 locale/%.ISO8859-7/stamp: data/%.UTF-8.src 8859-7.cm locale $(PROG)
288 ./$(PROG) -U -w data/widths.txt -i $< -f 8859-7.cm $(@D)
289 $(TOUCH) $@
290 locale/%.ISO8859-6/stamp: data/%.UTF-8.src 8859-6.cm locale $(PROG)
291 ./$(PROG) -U -w data/widths.txt -i $< -f 8859-6.cm $(@D)
292 $(TOUCH) $@
293 locale/%.ISO8859-9/stamp: data/%.UTF-8.src 8859-9.cm locale $(PROG)
294 ./$(PROG) -U -w data/widths.txt -i $< -f 8859-9.cm $(@D)
295 $(TOUCH) $@
296 locale/%.ISO8859-11/stamp: data/%.UTF-8.src 8859-11.cm locale $(PROG)
297 ./$(PROG) -U -w data/widths.txt -i $< -f 8859-11.cm $(@D)
298 $(TOUCH) $@
299 locale/%.ISO8859-13/stamp: data/%.UTF-8.src 8859-13.cm locale $(PROG)
300 ./$(PROG) -U -w data/widths.txt -i $< -f 8859-13.cm $(@D)
301 $(TOUCH) $@
302 locale/%.ISO8859-15/stamp: data/%.UTF-8.src 8859-15.cm locale $(PROG)
303 ./$(PROG) -U -w data/widths.txt -i $< -f 8859-15.cm $(@D)
304 $(TOUCH) $@
305 locale/%.KOI8-R/stamp: data/%.UTF-8.src KOI8-R.cm locale $(PROG)
306 ./$(PROG) -U -w data/widths.txt -i $< -f KOI8-R.cm $(@D)
307 $(TOUCH) $@
308 locale/%.GB18030/stamp: data/%.UTF-8.src GB18030.cm locale $(PROG)
309 ./$(PROG) -U -w data/widths.txt -i $< -f GB18030.cm $(@D)
310 $(TOUCH) $@
311
312 locale/%/$(DCOLL): locale/%/stamp
313 locale/%/$(DCTYPE): locale/%/stamp
314 locale/%/$(DMSGS): locale/%/stamp
315 locale/%/$(DMON): locale/%/stamp
316 locale/%/$(DNUM): locale/%/stamp
317 locale/%/$(DTIME): locale/%/stamp
318
319 UTF-8.cm: data/UTF-8.cm
320 $(LN) -sf data/UTF-8.cm $@
321
322 UTF-8.ct: $(UTF8SRCS) data/classes.txt
323 $(SH) data/ctype.sh $(UTF8SRCS) > $@
324
325 GB18030.cm: data/GB18030.cm
326 $(LN) -sf data/GB18030.cm $@
327
328 %.cm: data/%.TXT UTF-8.cm
329 $(RM) $@
330 $(PERL) data/convert_map.pl $< > $@
331
332 $(ROOTDATA): $(ROOTLOCDIRS) $(ROOTCATDIRS) $(DATA)
333 $(RM) $@
334 $(CP) $(@:$(ROOTLIB)/%=%) $@
335 $(CHMOD) 0444 $@
--- EOF ---