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
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.
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 # Copyright 2015 Joyent, Inc.
22 NPROG
=$(NDIR
)/localedef
24 include ..
/Makefile.cmd
26 OBJS
= charmap.o collate.o ctype.o messages.o monetary.o numeric.o time.o \
27 scanner.o localedef.o wide.o parser.tab.o
28 NOBJS
= $(OBJS
:%.o
=native
/%.o
) native
/avl.o native
/mkdirp.o
32 SRCS
= $(OBJS
:%.o
=%.c
)
34 CPPFLAGS
+= -I
$(SRC
)/lib
/libc
/port
/locale
35 NATIVE_CPPFLAGS
+= -I
$(SRC
)/lib
/libc
/port
/locale
36 CERRWARN
+= -_gcc
=-Wno-char-subscripts
37 CERRWARN
+= -_gcc
=-Wno-uninitialized
38 CERRWARN
+= -_gcc
=-Wno-unused-label
46 CLEANFILES
= $(NOBJS
) $(OBJS
) parser.tab.c parser.tab.h
49 8859-1.cm
8859-2.cm
8859-3.cm
8859-4.cm \
50 8859-5.cm
8859-5.cm
8859-6.cm
8859-7.cm \
51 8859-8.cm
8859-9.cm
8859-9.cm
8859-10.cm \
52 8859-11.cm
8859-13.cm
8859-14.cm
8859-15.cm \
55 CLOBBERFILES
= $(PROG
) $(NPROG
) $(POFILE
) \
58 PIFILES
= $(OBJS
:%.o
=%.i
)
59 POFILE
= localedef_cmd.po
64 en_AU en_CA en_GB en_NZ en_US \
65 es_AR es_BO es_CL es_CO es_EC es_ES es_GT es_MX es_NI es_PA \
66 es_PE es_SV es_UY es_VE \
92 ISO8859_11_LOCALES
= \
95 ISO8859_13_LOCALES
= \
99 ISO8859_15_LOCALES
= \
119 # All new locales should be in UTF-8 form.
123 ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA \
124 ar_OM ar_QA ar_SA ar_TN ar_YE \
135 de_AT de_BE de_CH de_DE de_LI de_LU \
137 en_AU en_BW en_BZ en_CA en_GB en_HK en_IE en_IN en_JM en_MH \
138 en_MT en_NA en_NZ en_PH en_PK en_SG en_TT en_US en_ZA en_ZW \
139 es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GQ es_GT \
140 es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY \
145 fr_BE fr_CA fr_CF fr_CH fr_FR fr_GN fr_LU fr_MC fr_MG fr_ML \
180 pt_BR pt_GW pt_MZ pt_PT \
198 zh_CN zh_HK zh_MO zh_SG zh_TW \
201 UTF8SRCS
= $(UTF_8_LOCALES
:%=data
/%.UTF-8.src
)
204 $(ISO8859_1_LOCALES
:%=%.ISO8859-1
) \
205 $(ISO8859_2_LOCALES
:%=%.ISO8859-2
) \
206 $(ISO8859_5_LOCALES
:%=%.ISO8859-5
) \
207 $(ISO8859_6_LOCALES
:%=%.ISO8859-6
) \
208 $(ISO8859_7_LOCALES
:%=%.ISO8859-7
) \
209 $(ISO8859_9_LOCALES
:%=%.ISO8859-9
) \
210 $(ISO8859_11_LOCALES
:%=%.ISO8859-11
) \
211 $(ISO8859_13_LOCALES
:%=%.ISO8859-13
) \
212 $(ISO8859_15_LOCALES
:%=%.ISO8859-15
) \
213 $(KOI8_R_LOCALES
:%=%.KOI8-R
) \
214 $(GB18030_LOCALES
:%=%.GB18030
) \
215 $(UTF_8_LOCALES
:%=%.UTF-8
)
217 LOCDIRS
= $(LOCNAMES
:%=locale
/%)
219 STAMPFILES
= $(LOCDIRS
:%=%/stamp
)
222 $(LOCDIRS
:%=%/LC_COLLATE
) \
223 $(LOCDIRS
:%=%/LC_CTYPE
) \
224 $(LOCDIRS
:%=%/LC_MESSAGES
) \
225 $(LOCDIRS
:%=%/LC_MONETARY
) \
226 $(LOCDIRS
:%=%/LC_NUMERIC
) \
227 $(LOCDIRS
:%=%/LC_TIME
)
229 DATA
= $(CATDIRS
:%=%/LCL_DATA
)
231 DCOLL
= LC_COLLATE
/LCL_DATA
232 DCTYPE
= LC_CTYPE
/LCL_DATA
233 DMSGS
= LC_MESSAGES
/LCL_DATA
234 DMON
= LC_MONETARY
/LCL_DATA
235 DNUM
= LC_NUMERIC
/LCL_DATA
236 DTIME
= LC_TIME
/LCL_DATA
238 ROOTLOCDIRS
= $(LOCDIRS
:%=$(ROOTLIB
)/%)
239 ROOTCATDIRS
= $(CATDIRS
:%=$(ROOTLIB
)/%)
240 ROOTDATA
= $(DATA
:%=$(ROOTLIB
)/%)
243 # This is a list of locales that happen to have translations for them
244 # present in the gate.
246 TRANSDIR
= translations
249 TRANSMOS
= $(TRANSLOCS
:%=$(TRANSDIR
)/%.mo
)
251 OSTMOFILE
= LC_MESSAGES
/SUNW_OST_OSLIB.mo
255 PRIVFILE
= LC_MESSAGES
/priv_names
257 ROOTTRANSLATIONS
= $(TRANSLOCS
:%=$(ROOTLIB
)/locale
/%/$(OSTMOFILE
))
258 ROOTPRIVTRANS
= $(PRIVTRANSLOCS
:%=$(ROOTLIB
)/locale
/%/$(PRIVFILE
))
260 $(ROOTDATA
) := FILEMODE
=0444
264 translate
: $(ROOTTRANSLATIONS
) $(ROOTPRIVTRANS
)
266 install: all $(ROOTPROG
) $(ROOTDATA
) $(ROOTTRANSLATIONS
) $(ROOTPRIVTRANS
)
272 $(NATIVECC
) $(NATIVE_CFLAGS
) $(NATIVE_CPPFLAGS
) -o
$@
-c
$<
274 $(NDIR
)/avl.o
: ..
/..
/common
/avl
/avl.c
275 $(NATIVECC
) $(NATIVE_CFLAGS
) $(NATIVE_CPPFLAGS
) -o
$@
-c \
276 ..
/..
/common
/avl
/avl.c
278 $(NDIR
)/mkdirp.o
: ..
/..
/lib
/libgen
/common
/mkdirp.c
279 $(NATIVECC
) $(NATIVE_CFLAGS
) $(NATIVE_CPPFLAGS
) -o
$@
-c \
280 ..
/..
/lib
/libgen
/common
/mkdirp.c
282 $(NPROG
): $(NDIR
) .WAIT
$(NOBJS
)
283 $(LINK.c
) $(NOBJS
) -o
$@
$(NATIVELDLIBS
)
287 $(LINK.c
) $(OBJS
) -o
$@
$(LDLIBS
)
290 $(OBJS
) $(NOBJS
): parser.tab.h
292 parser.tab.c parser.tab.h
: parser.y
$(HDRS
)
293 $(YACC
) $(YFLAGS
) parser.y
296 $(LINT.c
) $(CPPFLAGS
) $(SRCS
)
303 $(RM
) $(CLOBBERFILES
)
308 $(POFILE
): $(PIFILES
)
311 $(XGETTEXT
) -s
$(PIFILES
)
312 $(SED
) -e
'/domain/d' messages.po
> $@
313 $(RM
) $(PIFILES
) messages.po
315 locale
$(ROOTLOCDIRS
) $(ROOTCATDIRS
):
318 $(ROOTBIN
)/%: $(ROOTBIN
) %
321 # Strip LC_CTYPE contents for UTF-8 locales and replace them
322 # with UTF-8.ct we compiled
323 locale
/%.UTF-8
/stamp
: data
/%.UTF-8.src UTF-8.cm \
324 UTF-8.ct locale
$(NPROG
)
325 $(SED
) '/^LC_CTYPE/,/^END LC_CTYPE/d;$$r UTF-8.ct' $< | \
326 .
/$(NPROG
) -U
-w data
/widths.txt
-f UTF-8.cm
$(@D
)
328 # Convert EURO_SIGN to CURRENCY_SIGN for the ISO8859-1 locales
329 locale
/%.ISO8859-1
/stamp
: data
/%.UTF-8.src
8859-1.cm locale
$(NPROG
)
330 sed
's/EURO_SIGN/CURRENCY_SIGN/' $< > $<.tmp
331 .
/$(NPROG
) -U
-w data
/widths.txt
-i
$<.tmp
-f
8859-1.cm
$(@D
)
334 locale
/%.ISO8859-2
/stamp
: data
/%.UTF-8.src
8859-2.cm locale
$(NPROG
)
335 .
/$(NPROG
) -U
-w data
/widths.txt
-i
$< -f
8859-2.cm
$(@D
)
337 locale
/%.ISO8859-5
/stamp
: data
/%.UTF-8.src
8859-5.cm locale
$(NPROG
)
338 .
/$(NPROG
) -U
-w data
/widths.txt
-i
$< -f
8859-5.cm
$(@D
)
340 locale
/%.ISO8859-7
/stamp
: data
/%.UTF-8.src
8859-7.cm locale
$(NPROG
)
341 .
/$(NPROG
) -U
-w data
/widths.txt
-i
$< -f
8859-7.cm
$(@D
)
343 locale
/%.ISO8859-6
/stamp
: data
/%.UTF-8.src
8859-6.cm locale
$(NPROG
)
344 .
/$(NPROG
) -U
-w data
/widths.txt
-i
$< -f
8859-6.cm
$(@D
)
346 locale
/%.ISO8859-9
/stamp
: data
/%.UTF-8.src
8859-9.cm locale
$(NPROG
)
347 .
/$(NPROG
) -U
-w data
/widths.txt
-i
$< -f
8859-9.cm
$(@D
)
349 locale
/%.ISO8859-11
/stamp
: data
/%.UTF-8.src
8859-11.cm locale
$(NPROG
)
350 .
/$(NPROG
) -U
-w data
/widths.txt
-i
$< -f
8859-11.cm
$(@D
)
352 locale
/%.ISO8859-13
/stamp
: data
/%.UTF-8.src
8859-13.cm locale
$(NPROG
)
353 .
/$(NPROG
) -U
-w data
/widths.txt
-i
$< -f
8859-13.cm
$(@D
)
355 locale
/%.ISO8859-15
/stamp
: data
/%.UTF-8.src
8859-15.cm locale
$(NPROG
)
356 .
/$(NPROG
) -U
-w data
/widths.txt
-i
$< -f
8859-15.cm
$(@D
)
358 locale
/%.KOI8-R
/stamp
: data
/%.UTF-8.src KOI8-R.cm locale
$(NPROG
)
359 .
/$(NPROG
) -U
-w data
/widths.txt
-i
$< -f KOI8-R.cm
$(@D
)
361 locale
/%.GB18030
/stamp
: data
/%.UTF-8.src GB18030.cm locale
$(NPROG
)
362 .
/$(NPROG
) -U
-w data
/widths.txt
-i
$< -f GB18030.cm
$(@D
)
365 locale
/%/$(DCOLL
): locale
/%/stamp
366 locale
/%/$(DCTYPE
): locale
/%/stamp
367 locale
/%/$(DMSGS
): locale
/%/stamp
368 locale
/%/$(DMON
): locale
/%/stamp
369 locale
/%/$(DNUM
): locale
/%/stamp
370 locale
/%/$(DTIME
): locale
/%/stamp
372 UTF-8.cm
: data
/UTF-8.cm
373 $(LN
) -sf data
/UTF-8.cm
$@
375 UTF-8.ct
: $(UTF8SRCS
)
376 $(SH
) data
/ctype.sh
$(UTF8SRCS
) > $@
378 GB18030.cm
: data
/GB18030.cm
379 $(LN
) -sf data
/GB18030.cm
$@
381 %.cm
: data
/%.TXT UTF-8.cm
383 $(PERL
) data
/convert_map.pl
$< > $@
385 $(ROOTDATA
): $(ROOTLOCDIRS
) $(ROOTCATDIRS
) $(DATA
)
387 $(CP
) $(@
:$(ROOTLIB
)/%=%) $@
393 $(ROOTLIB
)/locale
/%/$(OSTMOFILE
): $(TRANSDIR
)/%.mo
397 $(ROOTLIB
)/locale
/%/$(PRIVFILE
): $(TRANSDIR
)/%.priv