Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Snapshot of ICU4C 4.4

  • Loading branch information...
commit 2ef73b7482a4a297e1e6a464f114dd65b0ee9610 0 parents
@dustin dustin authored
Showing with 38,436 additions and 0 deletions.
  1. +3,984 −0 APIChangeReport.html
  2. +102 −0 as_is/os390/unpax-icu.sh
  3. +32 −0 as_is/os400/convertConfigure.sed
  4. +195 −0 as_is/os400/unpax-icu.sh
  5. +447 −0 icu4c.css
  6. +51 −0 license.html
  7. +159 −0 packaging/PACKAGES
  8. +13 −0 packaging/README
  9. +228 −0 packaging/rpm/icu.spec
  10. +1,900 −0 readme.html
  11. +233 −0 source/Doxyfile.in
  12. +267 −0 source/Makefile.in
  13. +486 −0 source/aclocal.m4
  14. +596 −0 source/allinone/allinone.sln
  15. +210 −0 source/common/Makefile.in
  16. +723 −0 source/common/bmpset.cpp
  17. +161 −0 source/common/bmpset.h
  18. +290 −0 source/common/brkeng.cpp
  19. +292 −0 source/common/brkeng.h
  20. +443 −0 source/common/brkiter.cpp
  21. +65 −0 source/common/bytestream.cpp
  22. +574 −0 source/common/caniter.cpp
  23. +96 −0 source/common/chariter.cpp
  24. +88 −0 source/common/charstr.h
  25. +124 −0 source/common/cmemory.c
  26. +362 −0 source/common/cmemory.h
  27. +108 −0 source/common/common.rc
  28. +4,650 −0 source/common/common.vcproj
  29. +95 −0 source/common/cpputils.h
  30. +328 −0 source/common/cstring.c
  31. +120 −0 source/common/cstring.h
  32. +53 −0 source/common/cwchar.c
  33. +56 −0 source/common/cwchar.h
  34. +427 −0 source/common/dictbe.cpp
  35. +193 −0 source/common/dictbe.h
  36. +61 −0 source/common/dtintrv.cpp
  37. +38 −0 source/common/errorcode.cpp
  38. +268 −0 source/common/filterednormalizer2.cpp
  39. +207 −0 source/common/hash.h
  40. +112 −0 source/common/icucfg.h.in
  41. +83 −0 source/common/icudataver.c
  42. +825 −0 source/common/icuplug.c
  43. +87 −0 source/common/icuplugimp.h
  44. +25 −0 source/common/localsvc.h
  45. +187 −0 source/common/locavailable.cpp
  46. +46 −0 source/common/locbased.cpp
  47. +97 −0 source/common/locbased.h
  48. +824 −0 source/common/locdispnames.cpp
  49. +1,101 −0 source/common/locid.cpp
  50. +1,262 −0 source/common/loclikely.cpp
  51. +989 −0 source/common/locmap.c
  52. +37 −0 source/common/locmap.h
  53. +224 −0 source/common/locresdata.cpp
  54. +267 −0 source/common/locutil.cpp
  55. +37 −0 source/common/locutil.h
  56. +23 −0 source/common/msvcres.h
  57. +91 −0 source/common/mutex.cpp
  58. +199 −0 source/common/mutex.h
  59. +809 −0 source/common/normalizer2.cpp
  60. +1,733 −0 source/common/normalizer2impl.cpp
  61. +707 −0 source/common/normalizer2impl.h
  62. +522 −0 source/common/normlzr.cpp
  63. +21 −0 source/common/parsepos.cpp
  64. +752 −0 source/common/propname.cpp
  65. +515 −0 source/common/propname.h
  66. +557 −0 source/common/propsvec.c
  67. +191 −0 source/common/propsvec.h
  68. +580 −0 source/common/punycode.c
  69. +118 −0 source/common/punycode.h
  70. +2,149 −0 source/common/putil.c
  71. +300 −0 source/common/putilimp.h
  72. +1,855 −0 source/common/rbbi.cpp
  73. +453 −0 source/common/rbbicst.pl
  74. +450 −0 source/common/rbbidata.cpp
  75. +198 −0 source/common/rbbidata.h
  76. +358 −0 source/common/rbbinode.cpp
  77. +118 −0 source/common/rbbinode.h
  78. +323 −0 source/common/rbbirb.cpp
  79. +211 −0 source/common/rbbirb.h
  80. +275 −0 source/common/rbbirpt.h
Sorry, we could not display the entire diff because too many files (2,986) changed.
3,984 APIChangeReport.html
3,984 additions, 0 deletions not shown
102 as_is/os390/unpax-icu.sh
@@ -0,0 +1,102 @@
+#!/bin/sh
+# Copyright (C) 2001-2007, International Business Machines
+# Corporation and others. All Rights Reserved.
+#
+# Authors:
+# Ami Fixler
+# Steven R. Loomis
+# George Rhoten
+#
+# Shell script to unpax ICU and convert the files to an EBCDIC codepage.
+# After extracting to EBCDIC, binary files are re-extracted without the
+# EBCDIC conversion, thus restoring them to original codepage.
+#
+# Set the following variable to the list of binary file suffixes (extensions)
+
+#binary_suffixes='ico ICO bmp BMP jpg JPG gif GIF brk BRK'
+#ICU specific binary files
+binary_suffixes='brk BRK bin BIN res RES cnv CNV dat DAT icu ICU spp SPP xml XML'
+
+usage()
+{
+ echo "Enter archive filename as a parameter: $0 icu-archive.tar"
+}
+# first make sure we at least one arg and it's a file we can read
+if [ $# -eq 0 ]; then
+ usage
+ exit
+fi
+tar_file=$1
+if [ ! -r $tar_file ]; then
+ echo "$tar_file does not exist or cannot be read."
+ usage
+ exit
+fi
+
+echo ""
+echo "Extracting from $tar_file ..."
+echo ""
+# extract files while converting them to EBCDIC
+pax -rvf $tar_file -o to=IBM-1047,from=ISO8859-1 -o setfiletag
+
+echo ""
+echo "Determining binary files ..."
+echo ""
+
+# When building in ASCII mode, text files are converted as ASCII
+if [ "${ICU_ENABLE_ASCII_STRINGS}" -eq 1 ]; then
+ binary_suffixes="$binary_suffixes txt TXT ucm UCM"
+else
+ for file in `find ./icu \( -name \*.txt -print \) | sed -e 's/^\.\///'`; do
+ bom8=`head -c 3 $file|\
+ od -t x1|\
+ head -n 1|\
+ sed 's/ */ /g'|\
+ cut -f2-4 -d ' '|\
+ tr 'A-Z' 'a-z'`;
+ #Find a converted UTF-8 BOM
+ if [ "$bom8" = "57 8b ab" ]
+ then
+ binary_files="$binary_files $file";
+ fi
+ done
+fi
+
+for i in $(pax -f $tar_file 2>/dev/null)
+do
+ case $i in
+ */) ;; # then this entry is a directory
+ *.*) # then this entry has a dot in the filename
+ for j in $binary_suffixes
+ do
+ # We substitute the suffix more than once
+ # to handle files like NormalizationTest-3.2.0.txt
+ suf=${i#*.*}
+ suf=${suf#*.*}
+ suf=${suf#*.*}
+ if [ "$suf" = "$j" ]
+ then
+ binary_files="$binary_files $i"
+ break
+ fi
+ done
+ ;;
+ *) ;; # then this entry does not have a dot in it
+ esac
+done
+
+# now see if a re-extract of binary files is necessary
+if [ ${#binary_files} -eq 0 ]; then
+ echo ""
+ echo "There are no binary files to restore."
+else
+ echo "Restoring binary files ..."
+ echo ""
+ rm $binary_files
+ pax -rvf $tar_file $binary_files
+ # Tag the files as binary for proper interaction with the _BPXK_AUTOCVT
+ # environment setting
+ chtag -b $binary_files
+fi
+echo ""
+echo "$0 has completed extracting ICU from $tar_file."
32 as_is/os400/convertConfigure.sed
@@ -0,0 +1,32 @@
+# Copyright (C) 2006-2009, International Business Machines Corporation
+# and others. All Rights Reserved.
+#
+# Use "test -x" instead of "test -f" most of the time.
+# due to how executables are created in a different file system.
+s/as_executable_p="test -f"/as_executable_p="test -x"/g
+s/test -f "$ac_file"/test -x "$ac_file"/g
+s/test -f $ac_dir\/install-sh/test -x $ac_dir\/install-sh/g
+s/test -f $ac_dir\/install.sh/test -x $ac_dir\/install.sh/g
+s/test -f $ac_dir\/shtool/test -x $ac_dir\/shtool/g
+# Use the more efficient del instead of rm command.
+s/rm[ ]*-r[ ]*-f/del -f/g
+s/rm[ ]*-f[ ]*-r/del -f/g
+s/rm[ ]*-rf/del -f/g
+s/rm[ ]*-fr/del -f/g
+s/rm[ ]*-f/del -f/g
+##don't clean up some awks for debugging
+#s/[ ]*del -f [^ ]*.awk/#&/
+# Borne shell isn't always available on i5/OS
+s/\/bin\/sh/\/usr\/bin\/qsh/g
+# no diff in qsh the equivalent is cmp
+s/ diff / cmp -s /g
+## srl
+# trouble w/ redirects.
+s% >&$3%%g
+s%^ac_cr=%# AWK reads ASCII, not EBCDIC\
+touch -C 819 $tmp/defines.awk $tmp/subs.awk $tmp/subs1.awk conf$$subs.awk\
+\
+&%
+##OBSOLETE
+#(REPLACED BY CPP in runConfigureICU) Use -c qpponly instead of -E to enable the preprocessor on the compiler
+#s/\$CC -E/\$CC -c -qpponly/g
195 as_is/os400/unpax-icu.sh
@@ -0,0 +1,195 @@
+#!/usr/bin/qsh
+# Copyright (C) 2000-2009, International Business Machines
+# Corporation and others. All Rights Reserved.
+#
+# Authors:
+# Ami Fixler
+# Barry Novinger
+# Steven R. Loomis
+# George Rhoten
+# Jason Spieth
+#
+# Shell script to unpax ICU and convert the files to an EBCDIC codepage.
+# After extracting to EBCDIC, binary files are re-extracted without the
+# EBCDIC conversion, thus restoring them to original codepage.
+
+if [ -z "$QSH_VERSION" ];
+then
+ QSH=0
+ echo "QSH not detected (QSH_VERSION not set) - just testing."
+else
+ QSH=1
+ #echo "QSH version $QSH_VERSION"
+fi
+export QSH
+
+# Set the following variable to the list of binary file suffixes (extensions)
+
+
+#****************************************************************************
+#binary_suffixes='ico ICO bmp BMP jpg JPG gif GIF brk BRK'
+#ICU specific binary files
+#****************************************************************************
+binary_suffixes='brk BRK bin BIN res RES cnv CNV dat DAT icu ICU spp SPP xml XML'
+data_files='icu/source/data/brkitr/* icu/source/data/locales/* icu/source/data/coll/* icu/source/data/rbnf/* icu/source/data/mappings/* icu/source/data/misc/* icu/source/data/translit/* icu/source/data/unidata/* icu/source/test/testdata/*'
+
+#****************************************************************************
+# Function: usage
+# Description: Prints out text that describes how to call this script
+# Input: None
+# Output: None
+#****************************************************************************
+usage()
+{
+ echo "Enter archive filename as a parameter: $0 icu-archive.tar"
+}
+
+#****************************************************************************
+# first make sure we at least one arg and it's a file we can read
+#****************************************************************************
+
+# check for no arguments
+if [ $# -eq 0 ]; then
+ usage
+ exit
+fi
+
+# tar file is argument 1
+tar_file=$1
+
+# check that the file is valid
+if [ ! -r $tar_file ]; then
+ echo "$tar_file does not exist or cannot be read."
+ usage
+ exit
+fi
+
+#****************************************************************************
+# Determine which directories in the data_files list
+# are included in the provided archive
+#****************************************************************************
+echo "Finding data_files ..."
+for data_dir in $data_files
+do
+ if (pax -f $tar_file $data_dir >/dev/null 2>&1)
+ then
+ ebcdic_data="$ebcdic_data `echo $data_dir`";
+ fi
+done
+
+#****************************************************************************
+# Extract files. We do this in two passes. One pass for 819 files and a
+# second pass for 37 files
+#****************************************************************************
+echo ""
+echo "Extracting from $tar_file ..."
+echo ""
+
+# extract everything as iso-8859-1 except these directories
+pax -C 819 -rcvf $tar_file $ebcdic_data
+
+# extract files while converting them to EBCDIC
+echo ""
+echo "Extracting files which must be in ibm-37 ..."
+echo ""
+pax -C 37 -rvf $tar_file $ebcdic_data
+
+#****************************************************************************
+# For files we have restored as CCSID 37, check the BOM to see if they
+# should be processed as 819. Also handle files with special paths. Files
+# that match will be added to binary files lists. The lists will in turn
+# be processed to restore files as 819.
+#****************************************************************************
+echo ""
+echo "Determining binary files by BOM ..."
+echo ""
+bin_count=0
+# Process BOMs
+for file in `find ./icu \( -name \*.txt -print \)`; do
+ bom8=`head -n 1 $file|\
+ od -t x1|\
+ head -n 1|\
+ sed 's/ */ /g'|\
+ cut -f2-4 -d ' '|\
+ tr 'A-Z' 'a-z'`;
+ #Find a converted UTF-8 BOM
+ if [ "$bom8" = "057 08b 0ab" -o "$bom8" = "57 8b ab" ]
+ then
+ file="`echo $file | cut -d / -f2-`"
+
+ if [ `echo $binary_files | wc -w` -lt 200 ]
+ then
+ bin_count=`expr $bin_count + 1`
+ binary_files="$binary_files $file";
+ else
+ echo "Restoring binary files by BOM ($bin_count)..."
+ rm $binary_files;
+ pax -C 819 -rvf $tar_file $binary_files;
+ echo "Determining binary files by BOM ($bin_count)..."
+ binary_files="$file";
+ bin_count=`expr $bin_count + 1`
+ fi
+ fi
+done
+
+# Process special paths
+for i in $(pax -f $tar_file 2>/dev/null)
+do
+ case $i in
+ */)
+# then this entry is a directory
+ ;;
+ *.*)
+# then this entry has a dot in the filename
+ for j in $binary_suffixes
+ do
+ suf=${i#*.*}
+ if [ "$suf" = "$j" ]
+ then
+
+ if [ `echo $binary_files | wc -w` -lt 200 ]
+ then
+ binary_files="$binary_files $i";
+ bin_count=`expr $bin_count + 1`
+ else
+ echo "Restoring binary files by special paths ($bin_count) ..."
+ rm $binary_files;
+ pax -C 819 -rvf $tar_file $binary_files;
+ echo "Determining binary files by special paths ($bin_count) ..."
+ binary_files="$i";
+ bin_count=`expr $bin_count + 1`
+ fi
+ break
+ fi
+ done
+ ;;
+ *)
+# then this entry does not have a dot in it
+ ;;
+ esac
+done
+
+# now see if a re-extract of binary files is necessary
+if [ `echo $binary_files | wc -w` -gt 0 ]
+then
+ echo "Restoring binary files ($bin_count) ..."
+ rm $binary_files
+ pax -C 819 -rvf $tar_file $binary_files
+fi
+
+#****************************************************************************
+# Generate and run the configure script
+#****************************************************************************
+
+echo ""
+echo "Generating qsh compatible configure ..."
+echo ""
+
+sed -f icu/as_is/os400/convertConfigure.sed icu/source/configure > icu/source/configureTemp
+del -f icu/source/configure
+mv icu/source/configureTemp icu/source/configure
+chmod 755 icu/source/configure
+
+echo ""
+echo "$0 has completed extracting ICU from $tar_file - $bin_count binary files extracted."
+
447 icu4c.css
@@ -0,0 +1,447 @@
+/*
+ * Default CSS style sheet for the ICU4C Open Source readme
+ * Copyright (C) 2005-2009, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ */
+
+/* Global styles */
+
+body,p,li,ol,ul,th,td {
+ font-size: 10pt;
+ font-family: "Arial", "Helvetica", sans-serif;
+}
+
+body {
+ margin: 1em;
+}
+
+body.draft {
+ background-image: url(images/draftbg.png);
+}
+
+.mainbody {
+ padding: 1em;
+}
+
+/*
+ * Customize the headers to have less space around them than usual
+ */
+
+h1 {
+ margin-bottom: .5em;
+ margin-top: .5em;
+ padding-bottom: .5em;
+ padding-top: .5em;
+ font-weight: 700;
+ font-size: 20pt;
+ font-family: Georgia, "Times New Roman", Times, serif;
+ border-width: 2px;
+ border-style: solid;
+ text-align: center;
+ width: 100%;
+ font-size: 200%;
+ font-weight: bold;
+}
+
+h2 {
+ border-top: 2px solid #22d;
+ border-left: 2px solid #22d;
+ margin-bottom: 0.5em;
+ padding-left: 4px;
+ margin-top: 12pt;
+ font-weight: 700;
+ font-size: 2em;
+ font-family: Georgia, "Times New Roman", Times, serif;
+ background-color: #eee;
+ page-break-before: always;
+}
+
+h2 a {
+ text-decoration: none;
+ color: black;
+}
+
+h2 a:hover {
+ color: blue;
+ text-decoration: underline;
+}
+
+h3 {
+ border-top: 1px solid gray;
+ color: #1e1c46;
+ margin-bottom: 0pt;
+ margin-top: 12pt;
+ padding-left: 0;
+ margin-left: 1em;
+ margin-top: 0.2em;
+ padding-bottom: 0.4em;
+ font-size: 1.5em;
+ font-family: Georgia, "Times New Roman", Times, serif;
+}
+
+h3 a {
+ text-decoration: none;
+ color: black;
+}
+
+h3 a:hover {
+ color: blue;
+ text-decoration: underline;
+}
+
+h4 {
+ margin-left: 1.5em;
+ margin-bottom: 0pt;
+ margin-top: 12pt;
+ font-size: 1.0em;
+ font-weight: bolder;
+ font-family: Georgia, "Times New Roman", Times, serif;
+}
+
+h4 a {
+ text-decoration: none;
+ color: black;
+}
+
+h4 a:hover {
+ color: blue;
+ text-decoration: underline;
+}
+
+h5, h6 {
+ margin-left: 1.8em;
+ margin-bottom: 0pt;
+ margin-top: 12pt;
+ padding-left: 0.75em;
+ font-size: x-small;
+ font-family: Georgia, "Times New Roman", Times, serif;
+}
+
+p,pre,table,ul,ol,dl {
+ margin-left: 2em;
+}
+
+/*
+ * Navigation sidebar on the left hand of most pages
+ */
+
+td.sidebar1 {
+ background-color: #99CCFF;
+ font-weight: 700;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ padding-top: 1em;
+ padding-left: 0.2em;
+ white-space: nowrap;
+}
+
+td.sidebar2 {
+ background-color: #99CCFF;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ margin-left: 0px;
+ padding-top: 1px;
+ padding-bottom: 1px;
+ padding-left: 1px;
+ padding-right: 0.5em;
+ white-space: nowrap;
+ text-decoration: none;
+ display: block;
+}
+
+td.sidebar2:hover {
+ background-color: #EEEEFF;
+ padding-top: 1px;
+ padding-bottom: 1px;
+ padding-left: 1px;
+ padding-right: 0.5em;
+}
+
+a.sidebar2 {
+ text-decoration: none;
+ display: block;
+ width: 100%;
+}
+
+a.sidebar2:link {
+ color: #000099;
+ display: block;
+}
+
+a.sidebar2:hover {
+ background-color: #EEEEFF;
+ display: block;
+}
+
+.underlinehover:hover {
+ background-color: #EEEEFF;
+ text-decoration: underline;
+}
+
+/* This is the faded header at the top */
+
+td.fadedtop {
+ background-color: #006699;
+ background-image: url(http://www.icu-project.org/images/gr100.gif);
+}
+
+/* Related site on the left */
+
+p.relatedsite {
+ color: White;
+ font-weight: 700;
+ font-size: 10pt;
+ margin-top: 1em;
+ margin-bottom: 0;
+ padding-left: 0.2em;
+ white-space: nowrap;
+}
+
+/* Related site on the left */
+
+p.sidebar3 {
+ margin-top: 0.75em;
+ margin-bottom: 0;
+ padding-left: 0.8em;
+}
+
+a.sidebar3 {
+ font-size: 0.9em;
+ text-decoration: none;
+}
+
+a.sidebar3:link {
+ text-decoration: none;
+ color: White;
+}
+
+a.sidebar3:hover {
+ text-decoration: underline;
+}
+
+/* FAQ */
+
+li.faq_contents {
+ font-weight: 500;
+}
+
+p.faq_q {
+ font-weight: 700;
+ margin-bottom: 0px;
+}
+
+p.faq_a {
+ margin-top: 0px;
+}
+
+/* News items */
+
+table.newsItem {
+ padding-left: 1em;
+ padding-right: 1em;
+ border-width: medium;
+}
+
+th.newsItem {
+ background-color: #666666;
+ color: White;
+}
+
+td.newsItem {
+ background-color: #CCCCCC;
+}
+
+td.release-line,th.release-line {
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+ white-space: nowrap;
+ border: 1px;
+}
+
+.note {
+ font-style: italic;
+ font-size: small;
+ margin-left: 1em;
+}
+
+samp {
+ margin-left: 1em;
+ margin-right: 2em;
+ border-style: groove;
+ padding: 1em;
+ display: block;
+ background-color: #EEEEEE
+}
+
+table.rtable caption {
+ margin-left: 2px;
+ margin-right: 2px;
+ padding: 3px;
+ font-weight: bold;
+ background-color: #dee2ff;
+ text-align: left;
+}
+
+table.rtable tr th {
+ background-color: #dee2ff;
+ text-align: left;
+}
+
+table.rtable tr td {
+ background-color: #c0c0fd;
+ padding: 3px;
+}
+
+table.rtable tr.broken td {
+ background-color: #fbb;
+ border: 1px dashed gray;
+ padding: 3px;
+ font-weight: bold;
+}
+
+table.rtable tr.rarely td {
+ background-color: #efe9c2;
+ padding: 3px;
+ font-style: italic;
+}
+
+/* APIChangeReport specific things */
+
+.row0 {
+ background-color: white;
+}
+
+.row1 {
+ background-color: #dfd;
+}
+
+.verchange {
+ color: red;
+ font-weight: bold;
+ font-size: large;
+}
+
+.stabchange {
+ color: red;
+ font-size: large;
+}
+
+.bigwarn {
+ color: red;
+ background-color: white;
+ font-size: x-large;
+ margin: 0.5 em;
+}
+
+table.genTable {
+ border-collapse: collapse;
+ border: 1px solid black;
+}
+
+/* 'everything inc version */
+
+table.gentable td {
+ border: 1px solid gray;
+ padding: 0.25em;
+ font-size: small;
+}
+
+/* not version */
+
+table.genTable td.file,
+table.genTable td.proto {
+ border: none;
+ font-size: medium;
+}
+
+table.genTable td.file {
+ font-family: monospace;
+ font-weight: bold;
+}
+
+div.other .row0 {
+ background-color: white;
+}
+
+div.other .row1 {
+ background-color: #ddf;
+}
+
+table.docTable {
+ border-collapse: collapse;
+ border: 1px solid black;
+}
+
+/* 'everything inc version */
+
+table.docTable td,
+table.docTable th {
+ border: 1px solid gray;
+ padding: 0.25em;
+ font-size: small;
+}
+
+/* not version */
+
+table.docTable td.file,
+table.docTable td.proto {
+ border: none;
+ font-size: medium;
+}
+
+table.docTable td.file {
+ font-family: monospace;
+ font-weight: bold;
+}
+
+abbr {
+ border-bottom: 1px dashed #0B0;
+}
+
+h2.TOC {
+ page-break-before: auto;
+}
+
+body.readme {
+
+}
+
+caption {
+ font-weight: bold;
+ text-align: left
+}
+
+div.indent {
+ margin-left: 2em
+}
+
+ul.TOC {
+ list-style-type: none;
+ padding-left: 1em;
+ font-size: larger;
+}
+
+ul.TOC li a {
+ font-weight: bold;
+}
+
+ul.TOC li ul li a {
+ font-weight: normal;
+ list-style-type: none;
+ font-size: small;
+}
+
+ul.TOC li ul {
+ margin-left: 0;
+ padding-left: 2em;
+ font-weight: normal;
+ list-style-type: none;
+}
+
+pre.samp,samp {
+ margin-left: 1em;
+ border-style: groove;
+ padding: 1em;
+ display: block;
+ background-color: #EEEEEE
+}
51 license.html
@@ -0,0 +1,51 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></meta>
+<title>ICU License - ICU 1.8.1 and later</title>
+</head>
+
+<body BGCOLOR="#ffffff">
+<h2>ICU License - ICU 1.8.1 and later</h2>
+
+<p>COPYRIGHT AND PERMISSION NOTICE</p>
+
+<p>
+Copyright (c) 1995-2010 International Business Machines Corporation and others
+</p>
+<p>
+All rights reserved.
+</p>
+<p>
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, and/or sell
+copies of the Software, and to permit persons
+to whom the Software is furnished to do so, provided that the above
+copyright notice(s) and this permission notice appear in all copies
+of the Software and that both the above copyright notice(s) and this
+permission notice appear in supporting documentation.
+</p>
+<p>
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL
+THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM,
+OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER
+RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE
+USE OR PERFORMANCE OF THIS SOFTWARE.
+</p>
+<p>
+Except as contained in this notice, the name of a copyright holder shall not be
+used in advertising or otherwise to promote the sale, use or other dealings in
+this Software without prior written authorization of the copyright holder.
+</p>
+
+<hr>
+<p><small>
+All trademarks and registered trademarks mentioned herein are the property of their respective owners.
+</small></p>
+</body>
+</html>
159 packaging/PACKAGES
@@ -0,0 +1,159 @@
+Copyright (C) 2000-2003, International Business Machines
+Corporation and others. All Rights Reserved.
+ICU is packaged into a number of small, interdependent packages. This
+file describes what these packages are, what their name should be
+like, and what their contents are. It is useful as a reference and a
+guide when packaging ICU on a new system.
+
++ List of ICU packages.
+
+ICU is distributed as the following packages:
+
+- ICU libraries. This package contains the runtime libraries needed by
+applications that use ICU. All the other packages require this package
+to be installed.
+- ICU. This package contains the converters data, the timezones data,
+and all the ICU tools.
+- ICU locales. This package adds locales and break data.
+- ICU development. This package contains the files necessary to build
+applications that use ICU, i.e. header files, links to shared
+libraries used by the linker, static libraries, etc... It also
+contains sample applications and documentation.
+- ICU docs. This package contains further documentation for ICU,
+including a complete API reference.
+- ICU data. This package contains the source for the compiled data
+contained by the ICU package.
+- ICU international data. This package contains the source for the
+compiled data contained by the ICU locales package.
+
+In this file, we will refer to Autoconf variables as in $(bindir). In
+addition to these, we will use the following variables to denote
+ICU-specific directories or information:
+
+ VERSION ICU's dotted version number, e.g. 1.6.0.1 as of this
+ writing.
+
+ ICUDATADIR The directory where portable ICU data are. This is
+ defined as $(datadir)/icu/$(VERSION).
+ ICULIBDIR The directory where platform-specific ICU data
+ are. This is defined as $(libdir)/icu/$(VERSION).
+ ICUSYSCONFDIR The directory where ICU configuration files are. This
+ is defined as $(sysconfdir)/icu.
+
+When referring to libraries, .so will be used to denote the extension
+of a shared library, and .a to denote the extension of a static
+library. These extensions will actually be different on some platforms.
+
++ Configuration and compilation of ICU
+
+ICU should be configured with the following options:
+
+ --with-data-packaging=files
+ --disable-rpath
+ --enable-shared
+ --enable-static
+ --without-samples
+
+in addition to platform-specific settings (like a specific mandir or
+sysconfdir). Note that the use of --disable-rpath assumes that the
+packaging is made for a standard location, or that the package
+installation/deinstallation will correctly manage the configuration
+of the system's dyanmic loader. This is the right way of doing things.
+
+The configure script invokation should also be done with
+
+ CFLAGS="-O2"
+
+set, as in:
+
+ $ CFLAGS="-O2" ./configure ...
+
+The files packaging mode is chosen because it offers the maximum
+flexibility. Packages can be split easily, and system administrators
+can add converters, aliases, and other resources with little
+effort. Ideally, the ICU build will be modified to allow for distributing a
+libicudata.so with all the converters and locales, but indexes and aliases
+as separate files. But for now, this is the easiest way to get started.
+
++ The ICU libraries package
+
+The ICU libraries package is typically named `libicuXX' where XX is
+the major number of ICU's libraries. This number is ICU's version
+number multiplied by 10 and rounded down to the nearest integer (it is
+also the value of the LIB_VERSION_MAJOR configure substitution
+variable). For example, for ICU 1.6.0.1, it is 16, so the package name
+is `libicu16'. The major version is part of the package name to allow
+for the simultaneous installation of different ICU releases.
+
+This package contains:
+
+- All the shared libraries, and their major number symbolic link, but
+not the .so symbolic link that is only used at link time (this one is
+part of the development package). These are $(libdir)/libicu*.so.* and
+$(libdir)/libustdio.so.* at the time of this writing.
+
++ The ICU package
+
+The ICU package is simply named `icu'. It provides data used by the ICU
+libraries package and commands to create and manipulate that data.
+
+This package contains:
+
+- The Unicode data files (uprops.dat and unames.dat as of this writing).
+- The time zones data files (tz.dat).
+- All the binary data files for converters (.cnv files).
+- All the ICU commands.
+- The manual pages for ICU commands and file formats.
+
++ The ICU locales package
+
+The ICU locales package is named `icu-locales'. It provides data used by
+internationalization support in ICU.
+
+This package contains:
+
+- All the data for locales in ICU (.dat files).
+- All the break data for specific locales (.brk files).
+
++ The ICU development package
+
+The ICU developpment package is named `libicu-dev'. It provides all
+the files necessary to write applications that use ICU, along with
+examples and some documentation.
+
+This package contains:
+
+- The /usr/include/unicode directory which contains all the ICU
+headers.
+- The .so symbolic links used by the linker to link against the
+latest version of the libraries.
+- A sample Makefile fragment that can be included by applications
+using ICU, to faciliate their building, along with a platform-specific
+configuration file included by this fragment.
+- The sample applications from the ICU source tree, in an appropriate
+location for the system that the package is installed on (for example,
+on Debian, in /usr/share/doc/libicu-dev/examples).
+
+This package depends on the ICU libraries package with the exact same
+version, since it provides .so symbolic links to the latest libraries.
+
++ The ICU docs package
+
+The ICU docs package is named `libicu-doc'. It contains the files
+generated by doxygen when the `make doc' command is executed, in a
+location appropriate for the system that the package is installed on.
+
++ The ICU data package
+
+The ICU data package is named `icu-data'. It contains source files for
+the data found in the ICU package. These files are installed in
+$(ICUDATADIR).
+
++ The ICU international data package
+
+The ICU data package is named `icu-i18ndata'. It contains source files for
+the dat founf in the ICU locales package. These files are installed in
+$(ICUDATADIR).
+
+----
+Yves Arrouye <yves@realnames.com>
13 packaging/README
@@ -0,0 +1,13 @@
+Copyright (C) 2000-2003, International Business Machines
+Corporation and others. All Rights Reserved.
+
+This directory contains information, input files and scripts for
+packaging ICU using specific packaging tools. We assume that the
+packager is familiar with the tools and procedures needed to build a
+package for a given packaging method (for example, how to use
+dpkg-buildpackage(1) on Debian GNU/Linux, or rpm(8) on distributions that
+use RPM packages).
+
+Please read the file PACKAGES if you are interested in packaging ICU
+yourself. It describes what the different packages should be, and what
+their contents are.
228 packaging/rpm/icu.spec
@@ -0,0 +1,228 @@
+# Copyright (C) 2000-2005, International Business Machines
+# Corporation and others. All Rights Reserved.
+#
+# RPM specification file for ICU.
+#
+# Neal Probert <nprobert@walid.com> is the current maintainer.
+# Yves Arrouye <yves@realnames.com> is the original author.
+
+# This file can be freely redistributed under the same license as ICU.
+
+Name: icu
+Version: 3.4
+Release: 1
+Requires: libicu34 >= %{version}
+Summary: International Components for Unicode
+Packager: Ian Holsman (CNET Networks) <ianh@cnet.com>
+Copyright: X License
+Group: System Environment/Libraries
+Source: icu-%{version}.tgz
+BuildRoot: /var/tmp/%{name}-%{version}
+%description
+ICU is a set of C and C++ libraries that provides robust and full-featured
+Unicode and locale support. The library provides calendar support, conversions
+for many character sets, language sensitive collation, date
+and time formatting, support for many locales, message catalogs
+and resources, message formatting, normalization, number and currency
+formatting, time zones support, transliteration, word, line and
+sentence breaking, etc.
+
+This package contains the Unicode character database and derived
+properties, along with converters and time zones data.
+
+This package contains the runtime libraries for ICU. It does
+not contain any of the data files needed at runtime and present in the
+`icu' and `icu-locales` packages.
+
+%package -n libicu34
+Summary: International Components for Unicode (libraries)
+Group: Development/Libraries
+%description -n libicu34
+ICU is a set of C and C++ libraries that provides robust and full-featured
+Unicode support. This package contains the runtime libraries for ICU. It does
+not contain any of the data files needed at runtime and present in the
+`icu' and `icu-locales` packages.
+
+%package -n libicu-devel
+Summary: International Components for Unicode (development files)
+Group: Development/Libraries
+Requires: libicu34 = %{version}
+%description -n libicu-devel
+ICU is a set of C and C++ libraries that provides robust and full-featured
+Unicode support. This package contains the development files for ICU.
+
+%package locales
+Summary: Locale data for ICU
+Group: System Environment/Libraries
+Requires: libicu34 >= %{version}
+%description locales
+The locale data are used by ICU to provide localization (l10n),
+internationalization (i18n) and timezone support to ICU applications.
+This package also contains break data for various languages,
+and transliteration data.
+
+%post
+# Adjust the current ICU link in /usr/lib/icu
+
+icucurrent=`2>/dev/null ls -dp /usr/lib/icu/* | sed -n 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+cd /usr/lib/icu
+rm -f /usr/lib/icu/current
+if test x"$icucurrent" != x
+then
+ ln -s "$icucurrent" current
+fi
+
+#ICU_DATA=/usr/share/icu/%{version}
+#export ICU_DATA
+
+%preun
+# Adjust the current ICU link in /usr/lib/icu
+
+icucurrent=`2>/dev/null ls -dp /usr/lib/icu/* | sed -n -e '/\/%{version}\//d' -e 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+cd /usr/lib/icu
+rm -f /usr/lib/icu/current
+if test x"$icucurrent" != x
+then
+ ln -s "$icucurrent" current
+fi
+
+%post -n libicu34
+ldconfig
+
+# Adjust the current ICU link in /usr/lib/icu
+
+icucurrent=`2>/dev/null ls -dp /usr/lib/icu/* | sed -n 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+cd /usr/lib/icu
+rm -f /usr/lib/icu/current
+if test x"$icucurrent" != x
+then
+ ln -s "$icucurrent" current
+fi
+
+%preun -n libicu34
+# Adjust the current ICU link in /usr/lib/icu
+
+icucurrent=`2>/dev/null ls -dp /usr/lib/icu/* | sed -n -e '/\/%{version}\//d' -e 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+cd /usr/lib/icu
+rm -f /usr/lib/icu/current
+if test x"$icucurrent" != x
+then
+ ln -s "$icucurrent" current
+fi
+
+%prep
+%setup -q -n icu
+
+%build
+cd source
+chmod a+x ./configure
+CFLAGS="-O3" CXXFLAGS="-O" ./configure --prefix=/usr --sysconfdir=/etc --with-data-packaging=files --enable-shared --enable-static --disable-samples
+echo 'CPPFLAGS += -DICU_DATA_DIR=\"/usr/share/icu/%{version}\"' >> icudefs.mk
+make RPM_OPT_FLAGS="$RPM_OPT_FLAGS"
+
+%install
+rm -rf $RPM_BUILD_ROOT
+cd source
+make install DESTDIR=$RPM_BUILD_ROOT
+
+%files
+%defattr(-,root,root)
+%doc readme.html
+%doc license.html
+/usr/share/icu/%{version}/license.html
+/usr/share/icu/%{version}/icudt34l/*.cnv
+/usr/share/icu/%{version}/icudt34l/*.icu
+/usr/share/icu/%{version}/icudt34l/*.spp
+
+/usr/bin/derb
+/usr/bin/genbrk
+/usr/bin/gencnval
+/usr/bin/genrb
+/usr/bin/icu-config
+/usr/bin/makeconv
+/usr/bin/pkgdata
+/usr/bin/uconv
+
+/usr/sbin/decmn
+/usr/sbin/genccode
+/usr/sbin/gencmn
+/usr/sbin/gensprep
+/usr/sbin/genuca
+/usr/sbin/icuswap
+/usr/share/icu/%{version}/mkinstalldirs
+
+/usr/man/man1/derb.1.*
+/usr/man/man1/gencnval.1.*
+/usr/man/man1/genrb.1.*
+/usr/man/man1/icu-config.1.*
+/usr/man/man1/makeconv.1.*
+/usr/man/man1/pkgdata.1.*
+/usr/man/man1/uconv.1.*
+/usr/man/man8/decmn.8.*
+/usr/man/man8/genccode.8.*
+/usr/man/man8/gencmn.8.*
+/usr/man/man8/gensprep.8.*
+/usr/man/man8/genuca.8.*
+
+%files -n icu-locales
+/usr/share/icu/%{version}/icudt34l/*.brk
+/usr/share/icu/%{version}/icudt34l/*.res
+/usr/share/icu/%{version}/icudt34l/coll/*.res
+/usr/share/icu/%{version}/icudt34l/rbnf/*.res
+/usr/share/icu/%{version}/icudt34l/translit/*.res
+
+%files -n libicu34
+%doc license.html
+/usr/lib/libicui18n.so.34
+/usr/lib/libicui18n.so.34.0
+/usr/lib/libicutu.so.34
+/usr/lib/libicutu.so.34.0
+/usr/lib/libicuuc.so.34
+/usr/lib/libicuuc.so.34.0
+/usr/lib/libicudata.so.34
+/usr/lib/libicudata.so.34.0
+/usr/lib/libicuio.so.34
+/usr/lib/libicuio.so.34.0
+/usr/lib/libiculx.so.34
+/usr/lib/libiculx.so.34.0
+/usr/lib/libicule.so.34
+/usr/lib/libicule.so.34.0
+
+%files -n libicu-devel
+%doc readme.html
+%doc license.html
+/usr/lib/libicui18n.so
+/usr/lib/libsicui18n.a
+/usr/lib/libicuuc.so
+/usr/lib/libsicuuc.a
+/usr/lib/libicutu.so
+/usr/lib/libsicutu.a
+/usr/lib/libicuio.so
+/usr/lib/libsicuio.a
+/usr/lib/libicudata.so
+/usr/lib/libsicudata.a
+/usr/lib/libicule.so
+/usr/lib/libsicule.a
+/usr/lib/libiculx.so
+/usr/lib/libsiculx.a
+/usr/include/unicode/*.h
+/usr/include/layout/*.h
+/usr/lib/icu/%{version}/Makefile.inc
+/usr/lib/icu/Makefile.inc
+/usr/share/icu/%{version}/config
+/usr/share/doc/icu-%{version}/*
+
+%changelog
+* Mon Jun 07 2004 Alexei Dets <adets@idsk.com>
+- update to 3.0
+* Tue Aug 16 2003 Steven Loomis <srl@jtcsv.com>
+- update to 2.6.1 - include license
+* Thu Jun 05 2003 Steven Loomis <srl@jtcsv.com>
+- Update to 2.6
+* Fri Dec 27 2002 Steven Loomis <srl@jtcsv.com>
+- Update to 2.4 spec
+* Fri Sep 27 2002 Steven Loomis <srl@jtcsv.com>
+- minor updates to 2.2 spec. Rpath is off by default, don't pass it as an option.
+* Mon Sep 16 2002 Ian Holsman <ian@holsman.net>
+- update to icu 2.2
+
1,900 readme.html
@@ -0,0 +1,1900 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html lang="en-US" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
+ <head>
+
+ <title>ReadMe for ICU 4.4</title>
+ <meta name="COPYRIGHT" content=
+ "Copyright (c) 1997-2010 IBM Corporation and others. All Rights Reserved." />
+ <meta name="KEYWORDS" content=
+ "ICU; International Components for Unicode; ICU4C; what's new; readme; read me; introduction; downloads; downloading; building; installation;" />
+ <meta name="DESCRIPTION" content=
+ "The introduction to the International Components for Unicode with instructions on building, installation, usage and other information about ICU." />
+ <meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+ <link type="text/css" href="./icu4c.css" rel="stylesheet"/>
+ </head>
+
+ <body>
+ <h1>International Components for Unicode<br />
+ <abbr title="International Components for Unicode">ICU</abbr> 4.4 ReadMe</h1>
+
+ <p>Last updated: 2010 Mar 15th<br />
+ Copyright &copy; 1997-2010 International Business Machines Corporation and
+ others. All Rights Reserved.</p>
+ <!-- Remember that there is a copyright at the end too -->
+ <hr />
+
+ <h2 class="TOC">Table of Contents</h2>
+
+ <ul class="TOC">
+ <li><a href="#Introduction">Introduction</a></li>
+
+ <li><a href="#GettingStarted">Getting Started</a></li>
+
+ <li><a href="#News">What Is New In This release?</a></li>
+
+ <li><a href="#Download">How To Download the Source Code</a></li>
+
+ <li><a href="#SourceCode">ICU Source Code Organization</a></li>
+
+ <li>
+ <a href="#HowToBuild">How To Build And Install ICU</a>
+
+ <ul >
+ <li><a href="#HowToBuildSupported">Supported Platforms</a></li>
+
+ <li><a href="#RecBuild">Recommended Build Options</a></li>
+
+ <li><a href="#HowToBuildWindows">Windows</a></li>
+
+ <li><a href="#HowToBuildCygwin">Cygwin</a></li>
+
+ <li><a href="#HowToBuildUNIX">UNIX</a></li>
+
+ <li><a href="#HowToBuildZOS">z/OS (os/390)</a></li>
+
+ <li><a href="#HowToBuildOS400">IBM i family (IBM i, i5/OS, OS/400)</a></li>
+
+ <li><a href="#HowToCrossCompileICU">How to Cross Compile ICU</a></li>
+ </ul>
+ </li>
+
+
+ <li><a href="#HowToPackage">How To Package ICU</a></li>
+
+ <li>
+ <a href="#ImportantNotes">Important Notes About Using ICU</a>
+
+ <ul >
+ <li><a href="#ImportantNotesMultithreaded">Using ICU in a Multithreaded
+ Environment</a></li>
+
+ <li><a href="#ImportantNotesWindows">Windows Platform</a></li>
+
+ <li><a href="#ImportantNotesUNIX">UNIX Type Platforms</a></li>
+ </ul>
+ </li>
+
+ <li>
+ <a href="#PlatformDependencies">Platform Dependencies</a>
+
+ <ul >
+ <li><a href="#PlatformDependenciesNew">Porting To A New
+ Platform</a></li>
+
+ <li><a href="#PlatformDependenciesImpl">Platform Dependent
+ Implementations</a></li>
+ </ul>
+ </li>
+ </ul>
+ <hr />
+
+ <h2><a name="Introduction" href="#Introduction" id=
+ "Introduction">Introduction</a></h2>
+
+ <p>Today's software market is a global one in which it is desirable to
+ develop and maintain one application (single source/single binary) that
+ supports a wide variety of languages. The International Components for
+ Unicode (ICU) libraries provide robust and full-featured Unicode services on
+ a wide variety of platforms to help this design goal. The ICU libraries
+ provide support for:</p>
+
+ <ul>
+ <li>The latest version of the Unicode standard</li>
+
+ <li>Character set conversions with support for over 220 codepages</li>
+
+ <li>Locale data for more than 250 locales</li>
+
+ <li>Language sensitive text collation (sorting) and searching based on the
+ Unicode Collation Algorithm (=ISO 14651)</li>
+
+ <li>Regular expression matching and Unicode sets</li>
+
+ <li>Transformations for normalization, upper/lowercase, script
+ transliterations (50+ pairs)</li>
+
+ <li>Resource bundles for storing and accessing localized information</li>
+
+ <li>Date/Number/Message formatting and parsing of culture specific
+ input/output formats</li>
+
+ <li>Calendar specific date and time manipulation</li>
+
+ <li>Complex text layout for Arabic, Hebrew, Indic and Thai</li>
+
+ <li>Text boundary analysis for finding characters, word and sentence
+ boundaries</li>
+ </ul>
+
+ <p>ICU has a sister project ICU4J that extends the internationalization
+ capabilities of Java to a level similar to ICU. The ICU C/C++ project is also
+ called ICU4C when a distinction is necessary.</p>
+
+ <h2><a name="GettingStarted" href="#GettingStarted" id=
+ "GettingStarted">Getting started</a></h2>
+
+ <p>This document describes how to build and install ICU on your machine. For
+ other information about ICU please see the following table of links.<br />
+ The ICU homepage also links to related information about writing
+ internationalized software.</p>
+
+ <table class="docTable" summary="These are some useful links regarding ICU and internationalization in general.">
+ <caption>
+ Here are some useful links regarding ICU and internationalization in
+ general.
+ </caption>
+
+ <tr>
+ <td>ICU, ICU4C &amp; ICU4J Homepage</td>
+
+ <td><a href=
+ "http://icu-project.org/">http://icu-project.org/</a></td>
+ </tr>
+
+ <tr>
+ <td>FAQ - Frequently Asked Questions about ICU</td>
+
+ <td><a href=
+ "http://userguide.icu-project.org/icufaq">http://userguide.icu-project.org/icufaq</a></td>
+ </tr>
+
+ <tr>
+ <td>ICU User's Guide</td>
+
+ <td><a href=
+ "http://userguide.icu-project.org/">http://userguide.icu-project.org/</a></td>
+ </tr>
+
+ <tr>
+ <td>Download ICU Releases</td>
+
+ <td><a href=
+ "http://site.icu-project.org/download">http://site.icu-project.org/download</a></td>
+ </tr>
+
+ <tr>
+ <td>ICU4C API Documentation Online</td>
+
+ <td><a href=
+ "http://icu-project.org/apiref/icu4c/">http://icu-project.org/apiref/icu4c/</a></td>
+ </tr>
+
+ <tr>
+ <td>Online ICU Demos</td>
+
+ <td><a href=
+ "http://demo.icu-project.org/icu-bin/icudemos">http://demo.icu-project.org/icu-bin/icudemos</a></td>
+ </tr>
+
+ <tr>
+ <td>Contacts and Bug Reports/Feature Requests</td>
+
+ <td><a href=
+ "http://site.icu-project.org/contacts">http://site.icu-project.org/contacts</a></td>
+ </tr>
+ </table>
+
+ <p><strong>Important:</strong> Please make sure you understand the <a href=
+ "license.html">Copyright and License Information</a>.</p>
+
+ <h2><a name="News" href="#News" id="News">What is new in this
+ release?</a></h2>
+
+ <p>To see which APIs are new or changed in this release, view the <a href="APIChangeReport.html">ICU4C API Change Report</a>. </p>
+
+ <p><!-- The following list concentrates on <em>changes that affect existing
+ applications migrating from previous ICU releases</em>. --> For more news about
+ this release, see the <a href="http://site.icu-project.org/download">ICU
+ download page</a>.</p>
+
+ <h2><a name="Download" href="#Download" id="Download">How To Download the
+ Source Code</a></h2>
+
+ <p>There are two ways to download ICU releases:</p>
+
+ <ul>
+ <li><strong>Official Release Snapshot:</strong><br />
+ If you want to use ICU (as opposed to developing it), you should download
+ an official packaged version of the ICU source code. These versions are
+ tested more thoroughly than day-to-day development builds of the system,
+ and they are packaged in zip and tar files for convenient download. These
+ packaged files can be found at <a href=
+ "http://site.icu-project.org/download">http://site.icu-project.org/download</a>.<br />
+ The packaged snapshots are named <strong>icu-nnnn.zip</strong> or
+ <strong>icu-nnnn.tgz</strong>, where nnnn is the version number. The .zip
+ file is used for Windows platforms, while the .tgz file is preferred on
+ most other platforms.<br />
+ Please unzip this file. </li>
+
+ <li><strong>Subversion Source Repository:</strong><br />
+ If you are interested in developing features, patches, or bug fixes for
+ ICU, you should probably be working with the latest version of the ICU
+ source code. You will need to check the code out of our Subversion repository to
+ ensure that you have the most recent version of all of the files. See our
+ <a href="http://site.icu-project.org/repository">source
+ repository</a> for details.</li>
+ </ul>
+
+ <h2><a name="SourceCode" href="#SourceCode" id="SourceCode">ICU Source Code
+ Organization</a></h2>
+
+ <p>In the descriptions below, <strong><i>&lt;ICU&gt;</i></strong> is the full
+ path name of the ICU directory (the top level directory from the distribution
+ archives) in your file system. You can also view the <a href=
+ "http://userguide.icu-project.org/design">ICU Architectural
+ Design</a> section of the User's Guide to see which libraries you need for
+ your software product. You need at least the data (<code>[lib]icudt</code>)
+ and the common (<code>[lib]icuuc</code>) libraries in order to use ICU.</p>
+
+ <table class="docTable" summary="The following files describe the code drop.">
+ <caption>
+ The following files describe the code drop.
+ </caption>
+
+ <tr>
+ <th scope="col">File</th>
+
+ <th scope="col">Description</th>
+ </tr>
+
+ <tr>
+ <td>readme.html</td>
+
+ <td>Describes the International Components for Unicode (this file)</td>
+ </tr>
+
+ <tr>
+ <td>license.html</td>
+
+ <td>Contains the text of the ICU license</td>
+ </tr>
+ </table>
+
+ <p><br />
+ </p>
+
+ <table class="docTable" summary=
+ "The following directories contain source code and data files.">
+ <caption>
+ The following directories contain source code and data files.
+ </caption>
+
+ <tr>
+ <th scope="col">Directory</th>
+
+ <th scope="col">Description</th>
+ </tr>
+
+ <tr>
+ <td><i>&lt;ICU&gt;</i>/source/<b>common</b>/</td>
+
+ <td>The core Unicode and support functionality, such as resource bundles,
+ character properties, locales, codepage conversion, normalization,
+ Unicode properties, Locale, and UnicodeString.</td>
+ </tr>
+
+ <tr>
+ <td><i>&lt;ICU&gt;</i>/source/<b>i18n</b>/</td>
+
+ <td>Modules in i18n are generally the more data-driven, that is to say
+ resource bundle driven, components. These deal with higher-level
+ internationalization issues such as formatting, collation, text break
+ analysis, and transliteration.</td>
+ </tr>
+
+ <tr>
+ <td><i>&lt;ICU&gt;</i>/source/<b>layout</b>/</td>
+
+ <td>Contains the ICU layout engine (not a rasterizer).</td>
+ </tr>
+
+ <tr>
+ <td><i>&lt;ICU&gt;</i>/source/<b>io</b>/</td>
+
+ <td>Contains the ICU I/O library.</td>
+ </tr>
+
+ <tr>
+ <td><i>&lt;ICU&gt;</i>/source/<b>data</b>/</td>
+
+ <td>
+ <p>This directory contains the source data in text format, which is
+ compiled into binary form during the ICU build process. It contains
+ several subdirectories, in which the data files are grouped by
+ function. Note that the build process must be run again after any
+ changes are made to this directory.</p>
+
+ <p>If some of the following directories are missing, it's probably
+ because you got an official download. If you need the data source files
+ for customization, then please download the ICU source code from <a
+ href="http://site.icu-project.org/repository">subversion</a>.</p>
+
+ <ul>
+ <li><b>in/</b> A directory that contains a pre-built data library for
+ ICU. A standard source code package will contain this file without
+ several of the following directories. This is to simplify the build
+ process for the majority of users and to reduce platform porting
+ issues.</li>
+
+ <li><b>brkitr/</b> Data files for character, word, sentence, title
+ casing and line boundary analysis.</li>
+
+ <li><b>locales/</b> These .txt files contain ICU language and
+ culture-specific localization data. Two special bundles are
+ <b>root</b>, which is the fallback data and parent of other bundles,
+ and <b>index</b>, which contains a list of installed bundles. The
+ makefile <b>resfiles.mk</b> contains the list of resource bundle
+ files.</li>
+
+ <li><b>mappings/</b> Here are the code page converter tables. These
+ .ucm files contain mappings to and from Unicode. These are compiled
+ into .cnv files. <b>convrtrs.txt</b> is the alias mapping table from
+ various converter name formats to ICU internal format and vice versa.
+ It produces cnvalias.icu. The makefiles <b>ucmfiles.mk,
+ ucmcore.mk,</b> and <b>ucmebcdic.mk</b> contain the list of
+ converters to be built.</li>
+
+ <li><b>translit/</b> This directory contains transliterator rules as
+ resource bundles, a makefile <b>trnsfiles.mk</b> containing the list
+ of installed system translitaration files, and as well the special
+ bundle <b>translit_index</b> which lists the system transliterator
+ aliases.</li>
+
+ <li><b>unidata/</b> This directory contains the Unicode data files.
+ Please see <a href=
+ "http://www.unicode.org/">http://www.unicode.org/</a> for more
+ information.</li>
+
+ <li><b>misc/</b> The misc directory contains other data files which
+ did not fit into the above categories. Currently it only contains
+ time zone information, and a name preperation file for <a href=
+ "http://www.ietf.org/rfc/rfc3490.txt">IDNA</a>.</li>
+
+ <li><b>out/</b> This directory contains the assembled memory mapped
+ files.</li>
+
+ <li><b>out/build/</b> This directory contains intermediate (compiled)
+ files, such as .cnv, .res, etc.</li>
+ </ul>
+
+ <p>If you are creating a special ICU build, you can set the ICU_DATA
+ environment variable to the out/ or the out/build/ directories, but
+ this is generally discouraged because most people set it incorrectly.
+ You can view the <a href=
+ "http://userguide.icu-project.org/icudata">ICU Data
+ Management</a> section of the ICU User's Guide for details.</p>
+ </td>
+ </tr>
+
+ <tr>
+ <td><i>&lt;ICU&gt;</i>/source/test/<b>intltest</b>/</td>
+
+ <td>A test suite including all C++ APIs. For information about running
+ the test suite, see the build instructions specific to your platform
+ later in this document.</td>
+ </tr>
+
+ <tr>
+ <td><i>&lt;ICU&gt;</i>/source/test/<b>cintltst</b>/</td>
+
+ <td>A test suite written in C, including all C APIs. For information
+ about running the test suite, see the build instructions specific to your
+ platform later in this document.</td>
+ </tr>
+
+ <tr>
+ <td><i>&lt;ICU&gt;</i>/source/test/<b>iotest</b>/</td>
+
+ <td>A test suite written in C and C++ to test the icuio library. For
+ information about running the test suite, see the build instructions
+ specific to your platform later in this document.</td>
+ </tr>
+
+ <tr>
+ <td><i>&lt;ICU&gt;</i>/source/test/<b>testdata</b>/</td>
+
+ <td>Source text files for data, which are read by the tests. It contains
+ the subdirectories <b>out/build/</b> which is used for intermediate
+ files, and <b>out/</b> which contains <b>testdata.dat.</b></td>
+ </tr>
+
+ <tr>
+ <td><i>&lt;ICU&gt;</i>/source/<b>tools</b>/</td>
+
+ <td>Tools for generating the data files. Data files are generated by
+ invoking <i>&lt;ICU&gt;</i>/source/data/build/makedata.bat on Win32 or
+ <i>&lt;ICU&gt;</i>/source/make on UNIX.</td>
+ </tr>
+
+ <tr>
+ <td><i>&lt;ICU&gt;</i>/source/<b>samples</b>/</td>
+
+ <td>Various sample programs that use ICU</td>
+ </tr>
+
+ <tr>
+ <td><i>&lt;ICU&gt;</i>/source/<b>extra</b>/</td>
+
+ <td>Non-supported API additions. Currently, it contains the 'uconv' tool
+ to perform codepage conversion on files.</td>
+ </tr>
+
+ <tr>
+ <td><i>&lt;ICU&gt;</i>/<b>packaging</b>/</td>
+
+ <td>This directory contain scripts and tools for packaging the final
+ ICU build for various release platforms.</td>
+ </tr>
+
+ <tr>
+ <td><i>&lt;ICU&gt;</i>/source/<b>config</b>/</td>
+
+ <td>Contains helper makefiles for platform specific build commands. Used
+ by 'configure'.</td>
+ </tr>
+
+ <tr>
+ <td><i>&lt;ICU&gt;</i>/source/<b>allinone</b>/</td>
+
+ <td>Contains top-level ICU workspace and project files, for instance to
+ build all of ICU under one MSVC project.</td>
+ </tr>
+
+ <tr>
+ <td><i>&lt;ICU&gt;</i>/<b>include</b>/</td>
+
+ <td>Contains the headers needed for developing software that uses ICU on
+ Windows.</td>
+ </tr>
+
+ <tr>
+ <td><i>&lt;ICU&gt;</i>/<b>lib</b>/</td>
+
+ <td>Contains the import libraries for linking ICU into your Windows
+ application.</td>
+ </tr>
+
+ <tr>
+ <td><i>&lt;ICU&gt;</i>/<b>bin</b>/</td>
+
+ <td>Contains the libraries and executables for using ICU on Windows.</td>
+ </tr>
+ </table>
+ <!-- end of ICU structure ==================================== -->
+
+ <h2><a name="HowToBuild" href="#HowToBuild" id="HowToBuild">How To Build And
+ Install ICU</a></h2>
+
+ <h3><a name="HowToBuildSupported" href="#HowToBuildSupported" id=
+ "HowToBuildSupported">Supported Platforms</a></h3>
+
+ <table class="rtable" summary=
+ "ICU can be built on many platforms.">
+ <caption>
+ Here is the status of building ICU on several different platforms.
+ </caption>
+
+
+ <tr>
+ <td>AIX 6.1 (power, 64-bit)</td>
+ <td>VisualAge 9</td>
+ <td class="works">Frequently Tested</td>
+
+ </tr>
+
+ <tr>
+ <td>HP/UX 11iv3 (ia64, 64-bit)</td>
+ <td>aCC A.06.15</td>
+ <td class="works">Frequently Tested</td>
+
+ </tr>
+
+ <tr>
+ <td>Red Hat Enterprise Linux 5 (x86, 32-bit)</td>
+ <td>gcc 4.1.2</td>
+ <td class="works">Frequently Tested</td>
+
+ </tr>
+
+ <tr>
+ <td>Red Hat Enterprise Linux 5 (x86, 64-bit)</td>
+ <td>gcc 4.1.2</td>
+ <td class="works">Frequently Tested</td>
+
+ </tr>
+
+ <tr>
+ <td>Solaris 10 (sparc, 64-bit)</td>
+ <td>Sun Studio 12</td>
+ <td class="works">Frequently Tested</td>
+
+ </tr>
+
+ <tr>
+ <td>Windows Vista SP1 (x86, 32-bit)</td>
+ <td>MS Visual Studio 9</td>
+ <td class="works">Frequently Tested</td>
+
+ </tr>
+
+ <tr>
+ <td>AIX 5.2 (power, 64-bit)</td>
+ <td>VisualAge 6</td>
+ <td class="works">Frequently Tested</td>
+
+ </tr>
+
+ <tr>
+ <td>AIX 5.3 (power, 64-bit)</td>
+ <td>VisualAge 8</td>
+ <td class="works">Frequently Tested</td>
+
+ </tr>
+
+ <tr>
+ <td>AIX 6.1 (power, 64-bit)</td>
+ <td>gcc 4.2.4</td>
+ <td class="works">Frequently Tested</td>
+
+ </tr>
+
+ <tr>
+ <td>HP/UX 11i (hppa, 64-bit)</td>
+ <td>aCC A.03.85</td>
+ <td class="works">Frequently Tested</td>
+
+ </tr>
+
+ <tr>
+ <td>MacOSX 10.5 Leopard (x86, 32-bit)</td>
+ <td>gcc 4.0.1</td>
+ <td class="works">Frequently Tested</td>
+
+ </tr>
+
+ <tr>
+ <td>MacOSX 10.5 Leopard (x86, 64-bit)</td>
+ <td>gcc 4.0.1</td>
+ <td class="works">Frequently Tested</td>
+
+ </tr>
+
+ <tr>
+ <td>Red Hat Enterprise Linux 4.2 (x86, 32-bit)</td>
+ <td>gcc 3.4.6</td>
+ <td class="works">Frequently Tested</td>
+
+ </tr>
+
+ <tr>
+ <td>Red Hat Enterprise Linux 4u7 (x86, 32-bit)</td>
+ <td>gcc 4.2.4</td>
+ <td class="works">Frequently Tested</td>
+
+ </tr>
+
+ <tr>
+ <td>Red Hat Enterprise Linux 5 (x86, 32-bit)</td>
+ <td>icc 11.0</td>
+ <td class="works">Frequently Tested<br/><b>[<a href="#LinuxICCValueSafeOptimization">See Change</a>]</b></td>
+ </tr>
+
+ <tr>
+ <td>Solaris 10 (sparc, 64-bit)</td>
+ <td>gcc 4.2.1</td>
+ <td class="works">Frequently Tested</td>
+
+ </tr>
+
+ <tr>
+ <td>SuSE 10 (x86, 64-bit)</td>
+ <td>gcc 4.1.0</td>
+ <td class="works">Frequently Tested</td>
+
+ </tr>
+
+ <tr>
+ <td>Windows 2000 Professional (x86, 32-bit)</td>
+ <td>MS Visual Studio 2003 via Cygwin</td>
+ <td class="works">Frequently Tested</td>
+
+ </tr>
+
+ <tr>
+ <td>Windows 2000 Professional (x86, 32-bit)</td>
+ <td>gcc 3.4.4 via Cygwin</td>
+ <td class="works">Frequently Tested</td>
+
+ </tr>
+
+ <tr>
+ <td>Windows Server 2003 (x86, 64-bit)</td>
+ <td>MS Visual Studio 8 via Cygwin</td>
+ <td class="works">Frequently Tested</td>
+
+ </tr>
+
+ <tr>
+ <td>Windows Server 2008 (x86, 64-bit)</td>
+ <td>MS Visual Studio 9</td>
+ <td class="works">Frequently Tested</td>
+
+ </tr>
+
+ <tr>
+ <td>Windows XP Professional (x86, 32-bit)</td>
+ <td>MS Visual Studio 9</td>
+ <td class="works">Frequently Tested</td>
+
+ </tr>
+
+ <tr>
+ <td>Windows Server 2008 (x86, 64-bit)</td>
+ <td>MS Visual Studio 9 via Cygwin</td>
+ <td class="works">Frequently Tested</td>
+
+ </tr>
+
+ <tr class="broken">
+ <td>SuSe Linux 7.2 (x86, 32-bit)</td>
+ <td>icc 9.0</td>
+ <td class="broken">Broken <b><a href="http://bugs.icu-project.org/trac/ticket/6888">#6888</a></b></td>
+
+ </tr>
+
+
+<!-- end IBM lab data -->
+
+ <tr class="rarely">
+ <td>z/OS 1.7</td>
+
+ <td>cxx 1.7</td>
+
+ <td>Rarely tested</td>
+ </tr>
+
+ <tr class="rarely">
+ <td>IBM i family (IBM i, i5/OS, OS/400)</td>
+
+ <td>iCC</td>
+
+ <td>Rarely tested</td>
+ </tr>
+
+
+ <tr class="rarely">
+ <td>MinGW</td>
+
+ <td>gcc</td>
+
+ <td>Rarely tested</td>
+ </tr>
+
+ <tr class="rarely">
+ <td>NetBSD, OpenBSD, FreeBSD</td>
+
+ <td>gcc</td>
+
+ <td>Rarely tested</td>
+ </tr>
+
+ <tr class="rarely">
+ <td>SUSE Linux Enterprise Server 9 (PowerPC)</td>
+
+ <td>IBM XL C/C++ 8.0</td>
+
+ <td>Rarely tested</td>
+ </tr>
+
+ <tr class="rarely">
+ <td>QNX</td>
+
+ <td>gcc</td>
+
+ <td>Rarely tested</td>
+ </tr>
+
+ <tr class="rarely">
+ <td>BeOS/Haiku</td>
+
+ <td>gcc</td>
+
+ <td>Rarely tested</td>
+ </tr>
+
+ <tr class="rarely">
+ <td>SGI/IRIX</td>
+
+ <td>MIPSpro CC</td>
+
+ <td>Rarely tested</td>
+ </tr>
+
+ <tr class="rarely">
+ <td>Tru64 (OSF)</td>
+
+ <td>Compaq's cxx compiler</td>
+
+ <td>Rarely tested</td>
+ </tr>
+
+ <tr class="rarely">
+ <td>MP-RAS</td>
+
+ <td>NCR MP-RAS C/C++ Compiler</td>
+
+ <td>Rarely tested</td>
+ </tr>
+ </table>
+
+ <p><br />
+ </p>
+
+ <h4>Key to testing frequency</h4>
+
+ <dl>
+ <dt><i>Frequently tested</i></dt>
+
+ <dd>ICU will work on these platforms with these compilers</dd>
+
+ <dt><i>Rarely tested</i></dt>
+
+ <dd>ICU has been ported to these platforms but may not have been tested
+ there recently</dd>
+ </dl>
+
+ <h3><a name="RecBuild" href="#RecBuild" id=
+ "RecBuild">Recommended Build Options</a></h3>
+
+ <p>Depending on the platform and the type of installation,
+ we recommend a small number of modifications and build options.</p>
+ <ul>
+ <li><b>Namespace:</b> By default, unicode/uversion.h has
+ "using namespace icu;" which defeats much of the purpose of the namespace.
+ (This is for historical reasons: Originally, ICU4C did not use namespaces,
+ and some compilers did not support them. The default "using" statement
+ preserves source code compatibility.)<br>
+ We recommend you turn this off via <code>-DU_USING_ICU_NAMESPACE=0</code>
+ or by modifying unicode/uversion.h:
+<pre>Index: source/common/unicode/uversion.h
+===================================================================
+--- source/common/unicode/uversion.h (revision 26606)
++++ source/common/unicode/uversion.h (working copy)
+@@ -180,7 +180,8 @@
+ # define U_NAMESPACE_QUALIFIER U_ICU_NAMESPACE::
+
+ # ifndef U_USING_ICU_NAMESPACE
+-# define U_USING_ICU_NAMESPACE 1
++ // Set to 0 to force namespace declarations in ICU usage.
++# define U_USING_ICU_NAMESPACE 0
+ # endif
+ # if U_USING_ICU_NAMESPACE
+ U_NAMESPACE_USE
+</pre>
+ ICU call sites then either qualify ICU types explicitly,
+ for example <code>icu::UnicodeString</code>,
+ or do <code>using icu::UnicodeString;</code> where appropriate.</li>
+ <li><b>Hardcode the default charset to UTF-8:</b> On platforms where
+ the default charset is always UTF-8,
+ like MacOS X and some Linux distributions,
+ we recommend hardcoding ICU's default charset to UTF-8.
+ This means that some implementation code becomes simpler and faster,
+ and statically linked ICU libraries become smaller.
+ (See the <a href="http://icu-project.org/apiref/icu4c/utypes_8h.html#0a33e1edf3cd23d9e9c972b63c9f7943">U_CHARSET_IS_UTF8</a>
+ API documentation for more details.)<br>
+ You can <code>-DU_CHARSET_IS_UTF8=1</code> or modify unicode/utypes.h:
+<pre>Index: source/common/unicode/utypes.h
+===================================================================
+--- source/common/unicode/utypes.h (revision 26606)
++++ source/common/unicode/utypes.h (working copy)
+@@ -160,7 +160,7 @@
+ * @see UCONFIG_NO_CONVERSION
+ */
+ #ifndef U_CHARSET_IS_UTF8
+-# define U_CHARSET_IS_UTF8 0
++# define U_CHARSET_IS_UTF8 1
+ #endif
+
+ /*===========================================================================*/
+</pre></li>
+ <li><b>.dat file:</b> By default, the ICU data is built into
+ a shared library (DLL). This is convenient because it requires no
+ install-time or runtime configuration,
+ but the library is platform-specific and cannot be modified.
+ A .dat package file makes the opposite trade-off:
+ Platform-portable (except for endianness and charset family, which
+ can be changed with the icupkg tool)
+ and modifiable (also with the icupkg tool).
+ If a path is set, then single data files (e.g., .res files)
+ can be copied to that location to provide new locale data
+ or conversion tables etc.<br>
+ The only drawback with a .dat package file is that the application
+ needs to provide ICU with the file system path to the package file
+ (e.g., by calling <code>u_setDataDirectory()</code>)
+ or with a pointer to the data (<code>udata_setCommonData()</code>)
+ before other ICU API calls.
+ This is usually easy if ICU is used from an application where
+ <code>main()</code> takes care of such initialization.
+ It may be hard if ICU is shipped with
+ another shared library (such as the Xerces-C++ XML parser)
+ which does not control <code>main()</code>.<br>
+ See the <a href="http://userguide.icu-project.org/icudata">User Guide ICU Data</a>
+ chapter for more details.<br>
+ If possible, we recommend building the .dat package.
+ Specify <code>--with-data-packaging=archive</code>
+ on the configure command line, as in<br>
+ <code>runConfigureICU Linux --with-data-packaging=archive</code><br>
+ (Read the configure script's output for further instructions.
+ On Windows, the Visual Studio build generates both the .dat package
+ and the data DLL.)<br>
+ Be sure to install and use the tiny stubdata library
+ rather than the large data DLL.</li>
+ <li><b>Static libraries:</b> It may make sense to build the ICU code
+ into static libraries (.a) rather than shared libraries (.so/.dll).
+ Static linking reduces the overall size of the binary by removing
+ code that is never called.<br>
+ Example configure command line:<br>
+ <code>runConfigureICU Linux --enable-static --disable-shared</code></li>
+ <li><b>Out-of-source build:</b> It is usually desirable to keep the ICU
+ source file tree clean and have build output files written to
+ a different location. This is called an "out-of-source build".
+ Simply invoke the configure script from the target location:
+<pre>~/icu$ svn export http://source.icu-project.org/repos/icu/icu/trunk
+~/icu$ mkdir trunk-dev
+~/icu$ cd trunk-dev
+~/icu/trunk-dev$ ../trunk/source/runConfigureICU Linux
+~/icu/trunk-dev$ make check</pre></li>
+ </ul>
+ <h4>ICU as a System-Level Library</h4>
+ <p>If ICU is installed as a system-level library, there are further
+ opportunities and restrictions to consider.
+ For details, see the <em>Using ICU as an Operating System Level Library</em>
+ section of the <a href="http://userguide.icu-project.org/design">User Guide ICU Architectural Design</a> chapter.</p>
+ <ul>
+ <li><b>Data path:</b> For a system-level library, it is best to load
+ ICU data from the .dat package file because the file system path
+ to the .dat package file can be hardcoded.
+ Set <code>-DICU_DATA_DIR=/path/to/icu/data</code> when building
+ the ICU code. (Used by source/common/putil.c.)<br>
+ Consider also setting <code>-DICU_NO_USER_DATA_OVERRIDE</code>
+ if you do not want the "ICU_DATA" environment variable to be used.
+ (An application can still override the data path via
+ <code>u_setDataDirectory()</code> or
+ <code>udata_setCommonData()</code>.</li>
+ <li><b>Hide draft API:</b> API marked with <code>@draft</code>
+ is new and not yet stable. Applications must not rely on unstable
+ APIs from a system-level library.
+ Define <code>U_HIDE_DRAFT_API</code>, <code>U_HIDE_INTERNAL_API</code>
+ and <code>U_HIDE_SYSTEM_API</code>
+ by modifying unicode/utypes.h before installing it.</li>
+ <li><b>Only C APIs:</b> Applications must not rely on C++ APIs from a
+ system-level library because binary C++ compatibility
+ across library and compiler versions is very hard to achieve.
+ Most ICU C++ APIs are in header files that contain a comment with
+ <code>\brief C++ API</code>.
+ Consider not installing these header files.</li>
+ <li><b>Disable renaming:</b> By default, ICU library entry point names
+ have an ICU version suffix. Turn this off for a system-level installation,
+ to enable upgrading ICU without breaking applications. For example:<br>
+ <code>runConfigureICU Linux --disable-renaming</code><br>
+ The public header files from this configuration must be installed
+ for applications to include and get the correct entry point names.</li>
+ </ul>
+
+ <h3><a name="HowToBuildWindows" href="#HowToBuildWindows" id=
+ "HowToBuildWindows">How To Build And Install On Windows</a></h3>
+
+ <p>Building International Components for Unicode requires:</p>
+
+ <ul>
+ <li>Microsoft Windows 2000 or above</li>
+
+ <li>Microsoft Visual C++ 2008</li>
+
+ <li><a href="#HowToBuildCygwin">Cygwin</a> is required when other versions
+ of Microsoft Visual C++ and other compilers are used to build ICU.</li>
+ </ul>
+
+ <p>The steps are:</p>
+
+ <ol>
+ <li>Unzip the icu-XXXX.zip file into any convenient location. Using command
+ line zip, type "unzip -a icu-XXXX.zip -d drive:\directory", or just use
+ WinZip.</li>
+
+ <li>Be sure that the ICU binary directory, <i>&lt;ICU&gt;</i>\bin\, is
+ included in the <strong>PATH</strong> environment variable. The tests will
+ not work without the location of the ICU DLL files in the path.</li>
+
+ <li>Open the "<i>&lt;ICU&gt;</i>\source\allinone\allinone.sln" workspace
+ file in Microsoft Visual Studio 2003. (This solution includes all the
+ International Components for Unicode libraries, necessary ICU building
+ tools, and the test suite projects). Please see the <a href=
+ "#HowToBuildWindowsCommandLine">command line note below</a> if you want to
+ build from the command line instead.</li>
+
+ <li>Set the active platform to "Win32" or "x64" (See <a href="#HowToBuildWindowsPlatform">Windows platform note</a> below)
+ and configuration to "Debug" or "Release" (See <a href="#HowToBuildWindowsConfig">Windows configuration note</a> below).</li>
+
+ <li>Choose the "Build" menu and select "Rebuild Solution". If you want to
+ build the Debug and Release at the same time, see the <a href=
+ "#HowToBuildWindowsBatch">batch configuration note</a> below.</li>
+
+ <li>Run the C++ test suite, "intltest". To do this: set the active startup
+ project to "intltest", and press Ctrl+F5 to run it. Make sure that it
+ passes without any errors.</li>
+
+ <li>Run the C test suite, "cintltst". To do this: set the active startup
+ project to "cintltst", and press Ctrl+F5 to run it. Make sure that it
+ passes without any errors.</li>
+
+ <li>Run the I/O test suite, "iotest". To do this: set the active startup
+ project to "iotest", and press Ctrl+F5 to run it. Make sure that it passes
+ without any errors.</li>
+
+ <li>You are now able to develop applications with ICU by using the
+ libraries and tools in <i>&lt;ICU&gt;</i>\bin\. The headers are in
+ <i>&lt;ICU&gt;</i>\include\ and the link libraries are in
+ <i>&lt;ICU&gt;</i>\lib\. To install the ICU runtime on a machine, or ship
+ it with your application, copy the needed components from
+ <i>&lt;ICU&gt;</i>\bin\ to a location on the system PATH or to your
+ application directory.</li>
+ </ol>
+
+ <p><a name="HowToBuildWindowsCommandLine" id=
+ "HowToBuildWindowsCommandLine"><strong>Using MSDEV At The Command Line
+ Note:</strong></a> You can build ICU from the command line. Assuming that you
+ have properly installed Microsoft Visual C++ to support command line
+ execution, you can run the following command, 'devenv.com
+ <i>&lt;ICU&gt;</i>\source\allinone\allinone.sln /build "Win32|Release"'. You can also
+ use Cygwin with this compiler to build ICU, and you can refer to the <a href=
+ "#HowToBuildCygwin">How To Build And Install On Windows with Cygwin</a>
+ section for more details.</p>
+
+ <p><a name="HowToBuildWindowsPlatform" id=
+ "HowToBuildWindowsPlatform"><strong>Setting Active Platform
+ Note:</strong></a> Even though you are able to select "x64" as the active platform, if your operating system is
+ not a 64 bit version of Windows, the build will fail. To set the active platform, two different possibilities are:</p>
+
+ <ul>
+ <li>Choose "Build" menu, select "Configuration Manager...", and select
+ "Win32" or "x64" for the Active Platform Solution.</li>
+
+ <li>Another way is to select the desired build configuration from "Solution
+ Platforms" dropdown menu from the standard toolbar. It will say
+ "Win32" or "x64" in the dropdown list.</li>
+ </ul>
+
+ <p><a name="HowToBuildWindowsConfig" id=
+ "HowToBuildWindowsConfig"><strong>Setting Active Configuration
+ Note:</strong></a> To set the active configuration, two different
+ possibilities are:</p>
+
+ <ul>
+ <li>Choose "Build" menu, select "Configuration Manager...", and select
+ "Release" or "Debug" for the Active Configuration Solution.</li>
+
+ <li>Another way is to select the desired build configuration from "Solution
+ Configurations" dropdown menu from the standard toolbar. It will say
+ "Release" or "Debug" in the dropdown list.</li>
+ </ul>
+
+ <p><a name="HowToBuildWindowsBatch" id="HowToBuildWindowsBatch"><strong>Batch
+ Configuration Note:</strong></a> If you want to build the Win32 and x64 platforms and
+ Debug and Release configurations at the same time, choose "Build" menu, and select "Batch
+ Build...". Click the "Select All" button, and then click the "Rebuild"
+ button.</p>
+
+ <h3><a name="HowToBuildCygwin" href="#HowToBuildCygwin" id=
+ "HowToBuildCygwin">How To Build And Install On Windows with Cygwin</a></h3>
+
+ <p>Building International Components for Unicode with this configuration
+ requires:</p>
+
+ <ul>
+ <li>Microsoft 2000 or above</li>
+
+ <li>Microsoft Visual C++ 2003 or above (when gcc isn't used).</li>
+
+ <li>
+ Cygwin with the following installed:
+
+ <ul>
+ <li>bash</li>
+
+ <li>GNU make</li>
+
+ <li>ar</li>
+
+ <li>ranlib</li>
+
+ <li>man (if you plan to look at the man pages)</li>
+ </ul>
+ </li>
+ </ul>
+
+ <p>There are two ways you can build ICU with Cygwin. You can build with gcc
+ or Microsoft Visual C++. If you use gcc, the resulting libraries and tools
+ will depend on the Cygwin environment. If you use Microsoft Visual C++, the
+ resulting libraries and tools do not depend on Cygwin and can be more easily
+ distributed to other Windows computers (the generated man pages and shell
+ scripts still need Cygwin). To build with gcc, please follow the "<a href=
+ "#HowToBuildUNIX">How To Build And Install On UNIX</a>" instructions, while
+ you are inside a Cygwin bash shell. To build with Microsoft Visual C++,
+ please use the following instructions:</p>
+
+ <ol>
+ <li>Start the Windows "Command Prompt" window. This is different from the
+ gcc build, which requires the Cygwin Bash command prompt. The Microsoft
+ Visual C++ compiler will not work with a bash command prompt.</li>
+
+ <li>If the computer isn't set up to use Visual C++ from the command line,
+ you need to run vcvars32.bat.<br>For example:<br>"<tt>C:\Program Files\Microsoft
+ Visual Studio 8\VC\bin\vcvars32.bat</tt>" can be used for 32-bit builds
+ <strong>or</strong> <br>"<tt>C:\Program Files (x86)\Microsoft Visual Studio
+ 8\VC\bin\amd64\vcvarsamd64.bat</tt>" can be used for 64-bit builds on
+ Windows x64.</li>
+
+ <li>Unzip the icu-XXXX.zip file into any convenient location. Using command
+ line zip, type "unzip -a icu-XXXX.zip -d drive:\directory", or just use
+ WinZip.</li>
+
+ <li>Change directory to "icu/source", which is where you unzipped ICU.</li>
+
+ <li>Run "<tt>bash <a href="source/runConfigureICU">./runConfigureICU</a>
+ Cygwin/MSVC</tt>" (See <a href="#HowToWindowsConfigureICU">Windows
+ configuration note</a> and non-functional configure options below).</li>
+
+ <li>Type <tt>"make"</tt> to compile the libraries and all the data files.
+ This make command should be GNU make.</li>
+
+ <li>Optionally, type <tt>"make check"</tt> to run the test suite, which
+ checks for ICU's functionality integrity (See <a href=
+ "#HowToTestWithoutGmake">testing note</a> below).</li>
+
+ <li>Type <tt>"make install"</tt> to install ICU. If you used the --prefix=
+ option on configure or runConfigureICU, ICU will be installed to the
+ directory you specified. (See <a href="#HowToInstallICU">installation
+ note</a> below).</li>
+ </ol>
+
+ <p><a name="HowToWindowsConfigureICU" id=
+ "HowToWindowsConfigureICU"><strong>Configuring ICU on Windows
+ NOTE:</strong></a> </p>
+ <p>
+ Ensure that the order of the PATH is MSVC, Cygwin, and then other PATHs. The configure
+ script needs certain tools in Cygwin (e.g. grep).
+ </p>
+ <p>
+ Also, you may need to run <tt>"dos2unix.exe"</tt> on all of the scripts (e.g. configure)
+ in the top source directory of ICU. To avoid this issue, you can download
+ the ICU source for Unix platforms (icu-xxx.tgz).
+ </p>
+ <p>In addition to the Unix <a href=
+ "#HowToConfigureICU">configuration note</a> the following configure options
+ currently do not work on Windows with Microsoft's compiler. Some options can
+ work by manually editing <tt>icu/source/common/unicode/pwin32.h</tt>, but
+ manually editing the files is not recommended.</p>
+
+ <ul>
+ <li><tt>--disable-renaming</tt></li>
+
+ <li><tt>--disable-threading</tt> (This flag does disable threading in ICU,
+ but the resulting ICU library will still be linked with MSVC's multithread DLL)</li>
+
+ <li><tt>--enable-tracing</tt></li>
+
+ <li><tt>--enable-rpath</tt></li>
+
+ <li><