<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../../general.ent">
  %general-entities;

  <!ENTITY icu-download-http
           "http://download.icu-project.org/files/icu4c/&icu-version;/icu4c-&icu-dl-version;-src.tgz">
  <!ENTITY icu-download-ftp  " ">
  <!ENTITY icu-md5sum        "e844caed8f2ca24c088505b0d6271bc0">
  <!ENTITY icu-size          "24 MB">
  <!ENTITY icu-buildsize     "354 MB (additional 30 MB for the tests)">
  <!ENTITY icu-time          "1.4 SBU (additional 1.9 SBU for the tests)">
]>

<sect1 id="icu" xreflabel="ICU-&icu-version;">
  <?dbhtml filename="icu.html"?>

  <sect1info>
    <othername>$LastChangedBy: bdubbs $</othername>
    <date>$Date: 2015-02-21 23:09:10 -0500 (Sat, 21 Feb 2015) $</date>
  </sect1info>

  <title>ICU-&icu-version;</title>

  <indexterm zone="icu">
    <primary sortas="a-ICU">ICU</primary>
  </indexterm>

  <sect2 role="package">
    <title>Introduction to ICU</title>

    <para>
      The <application>International Components for Unicode</application> (ICU)
      package is a mature, widely used set of C/C++ libraries providing Unicode
      and Globalization support for software applications.
      <application>ICU</application> is widely portable and gives applications
      the same results on all platforms.
    </para>

    &lfs77_checked;

    <bridgehead renderas="sect3">Package Information</bridgehead>
    <itemizedlist spacing="compact">
      <listitem>
        <para>
          Download (HTTP): <ulink url="&icu-download-http;"/>
        </para>
      </listitem>
      <listitem>
        <para>
          Download (FTP): <ulink url="&icu-download-ftp;"/>
        </para>
      </listitem>
      <listitem>
        <para>
          Download MD5 sum: &icu-md5sum;
        </para>
      </listitem>
      <listitem>
        <para>
          Download size: &icu-size;
        </para>
      </listitem>
      <listitem>
        <para>
          Estimated disk space required: &icu-buildsize;
        </para>
      </listitem>
      <listitem>
        <para>
          Estimated build time: &icu-time;
        </para>
      </listitem>
    </itemizedlist>

    <bridgehead renderas="sect3">ICU Dependencies</bridgehead>

    <bridgehead renderas="sect4">Optional</bridgehead>
    <para role="optional">
      <xref linkend="llvm"/> (with Clang)
    </para>

    <para condition="html" role="usernotes">
      User Notes: <ulink url="&blfs-wiki;/icu"/>
    </para>
  </sect2>

  <sect2 role="installation">
    <title>Installation of ICU</title>

    <para>
      Install <application>ICU</application> by running the following commands:
    </para>

<screen><userinput>cd source &amp;&amp;
./configure --prefix=/usr &amp;&amp;
make</userinput></screen>

    <para>
      To test the results, issue: <command>make check</command>.
    </para>

    <para>
      Now, as the <systemitem class="username">root</systemitem> user:
    </para>

<screen role="root"><userinput>make install</userinput></screen>
  </sect2>

  <sect2 role="commands">
    <title>Command Explanations</title>

    <para>

      <envar>CXX=g++</envar>: If you prefer, this environment variable, used in
      the configure line, forces use of <command>g++</command> compiler insted
      of <command>clang++</command>, if the latter is installed.

    </para>

  </sect2>

  <sect2 role="content">
    <title>Contents</title>

    <segmentedlist>
      <segtitle>Installed Programs</segtitle>
      <segtitle>Installed Libraries</segtitle>
      <segtitle>Installed Directories</segtitle>

      <seglistitem>
        <seg>
          derb, genbrk, genccode, gencfu, gencmn, gencnval, gendict, gennorm2,
          genrb, gensprep, icu-config, icuinfo, icupkg, makeconv, pkgdata and
          uconv
        </seg>
        <seg>
          libicudata.so, libicui18n.so, libicuio.so, libicule.so, libiculx.so,
          libicutest.so, libicutu.so and libicuuc.so
        </seg>
        <seg>
          /usr/include/layout,
          /usr/include/unicode,
          /usr/lib/icu and
          /usr/share/icu
        </seg>
      </seglistitem>
    </segmentedlist>

    <variablelist>
      <bridgehead renderas="sect3">Short Descriptions</bridgehead>
      <?dbfo list-presentation="list"?>
      <?dbhtml list-presentation="table"?>

      <varlistentry id="derb">
        <term><command>derb</command></term>
        <listitem>
          <para>
            disassembles a resource bundle.
          </para>
          <indexterm zone="icu derb">
            <primary sortas="b-derb">derb</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="genbrk">
        <term><command>genbrk</command></term>
        <listitem>
          <para>
            compiles ICU break iteration rules source files into binary data
            files.
          </para>
          <indexterm zone="icu genbrk">
            <primary sortas="b-genbrk">genbrk</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="genccode">
        <term><command>genccode</command></term>
        <listitem>
          <para>
            generates C or platform specific assembly code from an ICU data
            file.
          </para>
          <indexterm zone="icu genccode">
            <primary sortas="b-genccode">genccode</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="gencfu">
        <term><command>gencfu</command></term>
        <listitem>
          <para>
            reads in Unicode confusable character definitions and writes out the
            binary data.
          </para>
          <indexterm zone="icu gencfu">
            <primary sortas="b-gencfu">gencfu</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="gencmn">
        <term><command>gencmn</command></term>
        <listitem>
          <para>
            generates an ICU memory-mappable data file.
          </para>
          <indexterm zone="icu gencmn">
            <primary sortas="b-gencmn">gencmn</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="gencnval">
        <term><command>gencnval</command></term>
        <listitem>
          <para>
            compiles the converter's aliases file.
          </para>
          <indexterm zone="icu gencnval">
            <primary sortas="b-gencnval">gencnval</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="gendict">
        <term><command>gendict</command></term>
        <listitem>
          <para>
            compiles word list into ICU string trie dictionary.
          </para>
          <indexterm zone="icu gendict">
            <primary sortas="b-gendict">gendict</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="genrb">
        <term><command>genrb</command></term>
        <listitem>
          <para>
            compiles a resource bundle.
          </para>
          <indexterm zone="icu genrb">
            <primary sortas="b-genrb">genrb</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="gensprep">
        <term><command>gensprep</command></term>
        <listitem>
          <para>
            compiles StringPrep data from filtered RFC 3454 files.
          </para>
          <indexterm zone="icu gensprep">
            <primary sortas="b-gensprep">gensprep</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="icu-config">
        <term><command>icu-config</command></term>
        <listitem>
          <para>
            outputs ICU build options.
          </para>
          <indexterm zone="icu icu-config">
            <primary sortas="b-icu-config">icu-config</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="icuinfo">
        <term><command>icuinfo</command></term>
        <listitem>
          <para>
            outputs configuration information about the current ICU.
          </para>
          <indexterm zone="icu icuinfo">
            <primary sortas="b-icuinfo">icuinfo</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="icupkg">
        <term><command>icupkg</command></term>
        <listitem>
          <para>
            extracts or modifies an ICU .dat archive.
          </para>
          <indexterm zone="icu icupkg">
            <primary sortas="b-icupkg">icupkg</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="makeconv">
        <term><command>makeconv</command></term>
        <listitem>
          <para>
            compiles a converter table.
          </para>
          <indexterm zone="icu makeconv">
            <primary sortas="b-makeconv">makeconv</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="pkgdata">
        <term><command>pkgdata</command></term>
        <listitem>
          <para>
            packages data for use by ICU.
          </para>
          <indexterm zone="icu pkgdata">
            <primary sortas="b-pkgdata">pkgdata</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="uconv">
        <term><command>uconv</command></term>
        <listitem>
          <para>
            converts data from one encoding to another.
          </para>
          <indexterm zone="icu uconv">
            <primary sortas="b-uconv">uconv</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libicudata">
        <term><filename class="libraryfile">libicudata.so</filename></term>
        <listitem>
          <para>
            is the data library.
          </para>
          <indexterm zone="icu libicudata">
            <primary sortas="c-libicudata">libicudata.so</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libicui18n">
        <term><filename class="libraryfile">libicui18n.so</filename></term>
        <listitem>
          <para>
            is the internationalization (i18n) library.
          </para>
          <indexterm zone="icu libicui18n">
            <primary sortas="c-libicui18n">libicui18n.so</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libicuio">
        <term><filename class="libraryfile">libicuio.so</filename></term>
        <listitem>
          <para>
            is the ICU I/O (unicode stdio) library.
          </para>
          <indexterm zone="icu libicuio">
            <primary sortas="c-libicuio">libicuio.so</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libicule">
        <term><filename class="libraryfile">libicule.so</filename></term>
        <listitem>
          <para>
            is the layout engine.
          </para>
          <indexterm zone="icu libicule">
            <primary sortas="c-libicule">libicule.so</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libiculx">
        <term><filename class="libraryfile">libiculx.so</filename></term>
        <listitem>
          <para>
            is the layout extensions engine.
          </para>
          <indexterm zone="icu libiculx">
            <primary sortas="c-libiculx">libiculx.so</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libicutest">
        <term><filename class="libraryfile">libicutest.so</filename></term>
        <listitem>
          <para>
            is the test library.
          </para>
          <indexterm zone="icu libicutest">
            <primary sortas="c-libicutest">libicutest.so</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libicutu">
        <term><filename class="libraryfile">libicutu.so</filename></term>
        <listitem>
          <para>
            is the tool utility library.
          </para>
          <indexterm zone="icu libicutu">
            <primary sortas="c-libicutu">libicutu.so</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libicuuc">
        <term><filename class="libraryfile">libicuuc.so</filename></term>
        <listitem>
          <para>
            is the common library.
          </para>
          <indexterm zone="icu libicuuc">
            <primary sortas="c-libicuuc">libicuuc.so</primary>
          </indexterm>
        </listitem>
      </varlistentry>

    </variablelist>

  </sect2>

</sect1>
