clr2def: Add LC_CTYPE source file generation support
authorJohn Marino <draco@marino.st>
Sat, 1 Aug 2015 17:27:04 +0000 (19:27 +0200)
committerJohn Marino <draco@marino.st>
Sat, 1 Aug 2015 18:00:03 +0000 (20:00 +0200)
commitce02c39812ecae8c8bdc89570d49258d0f38a9e6
tree94e2bc7b087df2a4de632552ce53d7faaf0d0575
parentad8989d2a6c8c7661c9fa2938b8a51ac1b1d17eb
clr2def: Add LC_CTYPE source file generation support

I added the capability to generate LC_CTYPE source files (really this is
basically extracting a section from the POSIX files) but there was some
logic to figure out how to use the least amount of files because some of
them are large.

I compromised on a scheme that makes two reductions.  The first eliminates
true duplicates and uses the SAME+= mechanism to create symlinks.  However,
this leaves still some duplicates because while the output is distinct,
the source files are the same (e.g. en_US.ISO8859* uses the same input file
as en_US.UTF-8 locale, but the LC_CTYPE products differ.  The script
identifies those are replaces them with symlinks.  So it looks like a lot
of files but really it's only about 12 or so.

During the actual LC_CTYPE generating, character maps are needed.  I added
a Illumos tool to do this, which I had to modify.  Unlike Illumos, we will
pregenerate the maps that the tool (convert_map.pl) produces.  I had to
spend hours troubleshooting various "invalid" inputs so this is definitely
something that should not be repeated in the build.
tools/tools/locale/Makefile
tools/tools/locale/tools/cldr2def.pl
tools/tools/locale/tools/convert_map.pl [new file with mode: 0644]
tools/tools/locale/tools/finalize