This commit was manufactured by cvs2svn to create tag
'release-3-0-d02'.

X-SVN-Rev: 15548
diff --git a/.cvsignore b/.cvsignore
new file mode 100644
index 0000000..9f8d6b5
--- /dev/null
+++ b/.cvsignore
@@ -0,0 +1,3 @@
+bin
+include
+lib
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..b482bf4
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,67 @@
+* text=auto !eol
+
+*.c text !eol
+*.cc text !eol
+*.classpath text !eol
+*.cpp text !eol
+*.css text !eol
+*.dsp text !eol
+*.dsw text !eol
+*.filters text !eol
+*.h text !eol
+*.htm text !eol
+*.html text !eol
+*.in text !eol
+*.java text !eol
+*.launch text !eol
+*.mak text !eol
+*.md text !eol
+*.MF text !eol
+*.mk text !eol
+*.pl text !eol
+*.pm text !eol
+*.project text !eol
+*.properties text !eol
+*.py text !eol
+*.rc text !eol
+*.sh text eol=lf
+*.sln text !eol
+*.stub text !eol
+*.txt text !eol
+*.ucm text !eol
+*.vcproj text !eol
+*.vcxproj text !eol
+*.xml text !eol
+*.xsl text !eol
+*.xslt text !eol
+Makefile text !eol
+configure text !eol
+LICENSE text !eol
+README text !eol
+
+*.bin -text
+*.brk -text
+*.cnv -text
+*.icu -text
+*.res -text
+*.nrm -text
+*.spp -text
+*.tri2 -text
+
+source/data/brkitr/thaidict.brk -text
+source/data/unidata/UCARules.txt -text
+source/samples/ucnv/data02.bin -text
+source/test/testdata/importtest.bin -text
+source/test/testdata/iscii.bin -text
+source/test/testdata/testdata_icu26_testtypes.res -text
+source/test/testdata/testdata_icu26e_testtypes.res -text
+source/test/testdata/uni-text.bin -text
+
+# The following file types are stored in Git-LFS.
+*.jar filter=lfs diff=lfs merge=lfs -text
+*.dat filter=lfs diff=lfs merge=lfs -text
+*.zip filter=lfs diff=lfs merge=lfs -text
+*.gz filter=lfs diff=lfs merge=lfs -text
+*.bz2 filter=lfs diff=lfs merge=lfs -text
+*.gif filter=lfs diff=lfs merge=lfs -text
+
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d7bcd69
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,322 @@
+/bin
+debian/*.debhelper
+debian/*.substvars
+debian/*files
+debian/*libicu[0-9]*
+debian/control
+debian/docs
+debian/icu
+debian/icu-data
+debian/icu-doc
+debian/icu-i18ndata
+debian/icu-locales
+debian/icu.postinst
+debian/icu.prerm
+debian/libicu-dev
+debian/postinst
+debian/prerm
+debian/tmp
+/include
+/lib
+source/Makefile
+source/README
+source/allinone/*.ncb
+source/allinone/*.opt
+source/allinone/*.suo
+source/allinone/all/*.plg
+source/bin
+source/common/*.ao
+source/common/*.d
+source/common/*.o
+source/common/*.plg
+source/common/Debug
+source/common/Makefile
+source/common/Release
+source/common/icucfg.h
+source/common/libicu*.*
+source/common/unicode/platform.h
+source/config.cache
+source/config.log
+source/config.status
+source/config/Makefile.inc
+source/config/icu-config
+source/config/icu-config.1
+source/data/*.plg
+source/data/Makefile
+source/data/icupkg.inc
+source/data/out
+source/extra/Makefile
+source/extra/scrptrun/Makefile
+source/extra/uconv/*.d
+source/extra/uconv/*.o
+source/extra/uconv/Debug
+source/extra/uconv/Makefile
+source/extra/uconv/Release
+source/extra/uconv/pkgdata.inc
+source/extra/uconv/pkgdatain.txt
+source/extra/uconv/resources/*.res
+source/extra/uconv/uconv
+source/extra/uconv/uconv.1
+source/extra/uconv/uconv.plg
+source/extra/uconv/uconvmsg
+source/i18n/*.ao
+source/i18n/*.d
+source/i18n/*.o
+source/i18n/*.plg
+source/i18n/Debug
+source/i18n/Makefile
+source/i18n/Release
+source/icudefs.mk
+source/io/*.ao
+source/io/*.d
+source/io/*.o
+source/io/Debug
+source/io/Makefile
+source/io/Release
+source/layout/*.ao
+source/layout/*.d
+source/layout/*.o
+source/layout/*.pdb
+source/layout/Debug
+source/layout/Makefile
+source/layout/Release
+source/layoutex/*.ao
+source/layoutex/*.d
+source/layoutex/*.o
+source/layoutex/*.pdb
+source/layoutex/Debug
+source/layoutex/Makefile
+source/layoutex/Release
+source/lib
+source/samples/Makefile
+source/samples/cal/*.d
+source/samples/cal/*.pdb
+source/samples/cal/Debug
+source/samples/cal/Makefile
+source/samples/cal/Release
+source/samples/cal/icucal
+source/samples/date/*.d
+source/samples/date/*.pdb
+source/samples/date/Debug
+source/samples/date/Makefile
+source/samples/date/Release
+source/samples/date/icudate
+source/samples/layout/*.d
+source/samples/layout/*.pdb
+source/samples/layout/.#*
+source/samples/layout/Debug
+source/samples/layout/Makefile
+source/samples/layout/Release
+source/samples/layout/tmp
+source/stubdata/*.ao
+source/stubdata/*.d
+source/stubdata/*.o
+source/stubdata/*.plg
+source/stubdata/Debug
+source/stubdata/Makefile
+source/stubdata/Release
+source/stubdata/libicu*.*
+source/stubdata/stubdatabuilt.txt
+source/test/Makefile
+source/test/cintltst/*.d
+source/test/cintltst/*.o
+source/test/cintltst/*.plg
+source/test/cintltst/Debug
+source/test/cintltst/Makefile
+source/test/cintltst/Release
+source/test/cintltst/cintltst
+source/test/cintltst/cintltst.exe
+source/test/collperf/Makefile
+source/test/intltest/*.d
+source/test/intltest/*.o
+source/test/intltest/*.plg
+source/test/intltest/Debug
+source/test/intltest/Makefile
+source/test/intltest/Release
+source/test/intltest/intltest
+source/test/intltest/intltest.exe
+source/test/iotest/*.d
+source/test/iotest/*.o
+source/test/iotest/Debug
+source/test/iotest/Makefile
+source/test/iotest/Release
+source/test/iotest/iotest
+source/test/iotest/iotest.exe
+source/test/letest/*.d
+source/test/letest/*.pdb
+source/test/letest/.#*
+source/test/letest/Debug
+source/test/letest/Makefile
+source/test/letest/Release
+source/test/letest/tmp
+source/test/testdata/Makefile
+source/test/testdata/out
+source/test/testmap/*.d
+source/test/testmap/Debug
+source/test/testmap/Makefile
+source/test/testmap/Release
+source/test/testmap/testmap
+source/test/testmap/testmap.plg
+source/test/thaitest/Makefile
+source/test/threadtest/Makefile
+source/tools/Makefile
+source/tools/ctestfw/*.ao
+source/tools/ctestfw/*.d
+source/tools/ctestfw/*.o
+source/tools/ctestfw/*.pdb
+source/tools/ctestfw/Debug
+source/tools/ctestfw/Makefile
+source/tools/ctestfw/Release
+source/tools/ctestfw/libicutest*
+source/tools/ctestfw/pkgdata
+source/tools/dumpce/*.css
+source/tools/dumpce/*.d
+source/tools/dumpce/*.html
+source/tools/dumpce/*.o
+source/tools/dumpce/Makefile
+source/tools/dumpce/dumpce
+source/tools/genbrk/*.d
+source/tools/genbrk/*.o
+source/tools/genbrk/*.pdb
+source/tools/genbrk/*.plg
+source/tools/genbrk/Debug
+source/tools/genbrk/Makefile
+source/tools/genbrk/Release
+source/tools/genbrk/genbrk
+source/tools/genccode/*.d
+source/tools/genccode/*.o
+source/tools/genccode/*.pdb
+source/tools/genccode/*.plg
+source/tools/genccode/Debug
+source/tools/genccode/Makefile
+source/tools/genccode/Release
+source/tools/genccode/genccode
+source/tools/genccode/genccode.8
+source/tools/gencmn/*.d
+source/tools/gencmn/*.o
+source/tools/gencmn/*.pdb
+source/tools/gencmn/*.plg
+source/tools/gencmn/Debug
+source/tools/gencmn/Makefile
+source/tools/gencmn/Release
+source/tools/gencmn/decmn
+source/tools/gencmn/decmn.[0-9]
+source/tools/gencmn/decmn_win32_Debug
+source/tools/gencmn/decmn_win32_Release
+source/tools/gencmn/gencmn
+source/tools/gencmn/gencmn.[0-9]
+source/tools/gencnval/*.d
+source/tools/gencnval/*.o
+source/tools/gencnval/*.pdb
+source/tools/gencnval/Debug
+source/tools/gencnval/Makefile
+source/tools/gencnval/Release
+source/tools/gencnval/gencnval
+source/tools/gencnval/gencnval.[0-9]
+source/tools/gennames/*.d
+source/tools/gennames/*.o
+source/tools/gennames/*.pdb
+source/tools/gennames/Debug
+source/tools/gennames/Makefile
+source/tools/gennames/Release
+source/tools/gennames/gennames
+source/tools/gennames/gennames.8
+source/tools/gennorm/*.d
+source/tools/gennorm/*.o
+source/tools/gennorm/*.pdb
+source/tools/gennorm/*.plg
+source/tools/gennorm/Debug
+source/tools/gennorm/Makefile
+source/tools/gennorm/Release
+source/tools/gennorm/gennorm
+source/tools/gennorm/gennorm.[0-9]
+source/tools/genpname/*.d
+source/tools/genpname/*.o
+source/tools/genpname/*.pdb
+source/tools/genpname/*.plg
+source/tools/genpname/Debug
+source/tools/genpname/Makefile
+source/tools/genpname/Release
+source/tools/genpname/genpname
+source/tools/genprops/*.d
+source/tools/genprops/*.o
+source/tools/genprops/*.pdb
+source/tools/genprops/Debug
+source/tools/genprops/Makefile
+source/tools/genprops/Release
+source/tools/genprops/genprops
+source/tools/genprops/genprops.[0-9]
+source/tools/genrb/*.d
+source/tools/genrb/*.o
+source/tools/genrb/*.pdb
+source/tools/genrb/*.plg
+source/tools/genrb/Debug
+source/tools/genrb/Makefile
+source/tools/genrb/Release
+source/tools/genrb/derb
+source/tools/genrb/derb.[0-9]
+source/tools/genrb/derb_*
+source/tools/genrb/genrb
+source/tools/genrb/genrb.[0-9]
+source/tools/gensprep/*.d
+source/tools/gensprep/*.o
+source/tools/gensprep/*.pdb
+source/tools/gensprep/Debug
+source/tools/gensprep/Makefile
+source/tools/gensprep/Release
+source/tools/gensprep/gensprep
+source/tools/gensprep/gensprep.8
+source/tools/gensprep/gensprep.plg
+source/tools/gentest/*.d
+source/tools/gentest/*.o
+source/tools/gentest/*.pdb
+source/tools/gentest/Debug
+source/tools/gentest/Makefile
+source/tools/gentest/Release
+source/tools/gentest/gentest
+source/tools/genuca/*.d
+source/tools/genuca/*.o
+source/tools/genuca/*.pdb
+source/tools/genuca/Debug
+source/tools/genuca/Makefile
+source/tools/genuca/Release
+source/tools/genuca/genuca
+source/tools/genuca/genuca.8
+source/tools/icuswap/*.d
+source/tools/icuswap/*.ncb
+source/tools/icuswap/*.o
+source/tools/icuswap/*.opt
+source/tools/icuswap/*.pdb
+source/tools/icuswap/*.plg
+source/tools/icuswap/Debug
+source/tools/icuswap/Makefile
+source/tools/icuswap/Release
+source/tools/icuswap/icuswap
+source/tools/icuswap/icuswap.[0-9]
+source/tools/makeconv/*.d
+source/tools/makeconv/*.o
+source/tools/makeconv/*.pdb
+source/tools/makeconv/*.plg
+source/tools/makeconv/Debug
+source/tools/makeconv/Makefile
+source/tools/makeconv/Release
+source/tools/makeconv/makeconv
+source/tools/makeconv/makeconv.[0-9]
+source/tools/pkgdata/*.d
+source/tools/pkgdata/*.ncb
+source/tools/pkgdata/*.o
+source/tools/pkgdata/*.opt
+source/tools/pkgdata/*.pdb
+source/tools/pkgdata/Debug
+source/tools/pkgdata/Makefile
+source/tools/pkgdata/Release
+source/tools/pkgdata/icupkg.inc
+source/tools/pkgdata/pkgdata
+source/tools/pkgdata/pkgdata.[0-9]
+source/tools/toolutil/*.d
+source/tools/toolutil/*.o
+source/tools/toolutil/*.pdb
+source/tools/toolutil/Debug
+source/tools/toolutil/Makefile
+source/tools/toolutil/Release
+source/tools/toolutil/libicu*
diff --git a/as_is/os390/unpax-icu.sh b/as_is/os390/unpax-icu.sh
new file mode 100755
index 0000000..f5c7fdc
--- /dev/null
+++ b/as_is/os390/unpax-icu.sh
@@ -0,0 +1,127 @@
+#!/bin/sh
+# Copyright (C) 2001 - 2003, International Business Machines Corporation.      
+# All Rights Reserved.                                                       
+#
+# Authors:
+# Ami Fixler
+# Steven R. Loomis <srl@jtcsv.com>
+# 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'
+
+usage()
+{
+  echo "Enter archive filename as a parameter: $0 icu-archive.tar [strip]"
+  echo "(strip is an option to remove hex '0D' carraige returns)"
+}
+# first make sure we at least one arg and it's a file we can read
+if [ $# -eq 0 ]; then
+  usage
+  exit
+fi
+if [ ! -r $1 ]; then
+  echo "$1 does not exist or cannot be read."
+  usage
+  exit
+fi
+# set up a few variables
+
+echo ""
+echo "Extracting from $1 ..."
+echo ""
+# extract files while converting them to EBCDIC
+pax -rvf $1 -o to=IBM-1047,from=ISO8859-1
+
+if [ $# -gt 1 ]; then 
+  if [ $2 -eq strip ]; then
+    echo ""
+    echo "Stripping hex 0d characters ..."
+    for i in $(pax -f $1 2>/dev/null)
+    do
+      case $i in
+        */)
+         # then this entry is a directory
+         ;;
+        *)
+          # then this entry is NOT a directory
+          tr -d 
+ <$i >@@@icu@tmp
+          chmod +w $i
+          rm $i
+          mv @@@icu@tmp $i
+          ;;
+       esac
+    done
+  fi
+fi
+
+echo ""
+echo "Determining binary files ..."
+echo ""
+
+#for dir in `find ./icu -type d \( -name CVS -o -print \)`; do
+#    if [ -f $dir/CVS/Entries ]; then
+#        binary_files="$binary_files`cat $dir/CVS/Entries | fgrep -- -kb \
+#                      | cut -d / -f2 | sed -e "s%^%$dir/%" \
+#                      | sed -e "s%^\./%%" | tr '\n' ' '`"
+#    fi
+#done
+#echo "Detecting Unicode files"
+for file in `find icu \( -name \*.txt -print \)`; 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 test "$bom8" = "57 8b ab"
+    then
+        binary_files="$binary_files $file";
+    fi
+done
+
+for i in $(pax -f $1 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
+         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 $1 $binary_files
+fi
+echo ""
+echo "$0 has completed extracting ICU from $1."
diff --git a/as_is/os400/configure b/as_is/os400/configure
new file mode 100755
index 0000000..d5ad5ba
--- /dev/null
+++ b/as_is/os400/configure
@@ -0,0 +1,4590 @@
+#! /usr/bin/qsh
+
+# Guess values for system-dependent variables and create Makefiles.
+# Generated automatically using autoconf version 2.13 
+# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+
+# Defaults:
+ac_help=
+ac_default_prefix=/usr/local
+# Any additions from configure.in:
+ac_help="$ac_help
+  --enable-strict         compile with strict compiler options [default=no]"
+ac_help="$ac_help
+  --enable-64bit-libs     build 64-bit libraries [default=yes]"
+ac_help="$ac_help
+  --enable-shared         build shared libraries [default=yes]"
+ac_help="$ac_help
+  --enable-static         build static libraries [default=no]"
+ac_help="$ac_help
+  --enable-debug          build debug libraries [default=no]"
+ac_help="$ac_help
+  --enable-release        build release libraries [default=yes]"
+ac_help="$ac_help
+  --enable-renaming       add a version suffix to symbols [default=yes]"
+ac_help="$ac_help
+  --enable-tracing        enable function and data tracing [default=yes]"
+ac_help="$ac_help
+  --enable-rpath          use rpath when linking [default is only if necessary]"
+ac_help="$ac_help
+  --enable-threads        build ICU with thread safety [default=yes]"
+ac_help="$ac_help
+  --with-iostream=version specify the version of iostream to use (none, old, std, auto) [default=auto]"
+ac_help="$ac_help
+  --enable-extras         build ICU extras [default=yes]"
+ac_help="$ac_help
+  --enable-icuio          build ICU's icuio library [default=yes]"
+ac_help="$ac_help
+  --enable-layout         build ICU's layout library [default=yes]"
+ac_help="$ac_help
+  --with-data-packaging=type specify how to package ICU data (files, archive, library, auto) [default=auto]"
+ac_help="$ac_help
+"
+ac_help="$ac_help
+  --with-library-suffix=suffix    tag a suffix to the library names [default=]"
+ac_help="$ac_help
+  --enable-tests          build ICU tests [default=yes]"
+ac_help="$ac_help
+  --enable-samples        build ICU samples [default=yes]  
+Additionally, the variable FORCE_LIBS may be set before calling configure. If set, it will REPLACE any automatic list of libraries."
+
+# Initialize some variables set by options.
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+build=NONE
+cache_file=./config.cache
+exec_prefix=NONE
+host=NONE
+no_create=
+nonopt=NONE
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+target=NONE
+verbose=
+x_includes=NONE
+x_libraries=NONE
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+# Initialize some other variables.
+subdirs=
+MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/usr/bin/qsh}
+# Maximum number of lines to put in a shell here document.
+ac_max_here_lines=12
+
+ac_prev=
+for ac_option
+do
+
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval "$ac_prev=\$ac_option"
+    ac_prev=
+    continue
+  fi
+
+  case "$ac_option" in
+  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) ac_optarg= ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case "$ac_option" in
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir="$ac_optarg" ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build="$ac_optarg" ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file="$ac_optarg" ;;
+
+  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+  | --da=*)
+    datadir="$ac_optarg" ;;
+
+  -disable-* | --disable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    eval "enable_${ac_feature}=no" ;;
+
+  -enable-* | --enable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "enable_${ac_feature}='$ac_optarg'" ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix="$ac_optarg" ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he)
+    # Omit some internal or obsolete options to make the list less imposing.
+    # This message is too long to be a string in the A/UX 3.1 sh.
+    cat << EOF
+Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+  --cache-file=FILE       cache test results in FILE
+  --help                  print this message
+  --no-create             do not create output files
+  --quiet, --silent       do not print \`checking...' messages
+  --version               print the version of autoconf that created configure
+Directory and file names:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [same as prefix]
+  --bindir=DIR            user executables in DIR [EPREFIX/bin]
+  --sbindir=DIR           system admin executables in DIR [EPREFIX/sbin]
+  --libexecdir=DIR        program executables in DIR [EPREFIX/libexec]
+  --datadir=DIR           read-only architecture-independent data in DIR
+                          [PREFIX/share]
+  --sysconfdir=DIR        read-only single-machine data in DIR [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data in DIR
+                          [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data in DIR [PREFIX/var]
+  --libdir=DIR            object code libraries in DIR [EPREFIX/lib]
+  --includedir=DIR        C header files in DIR [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc in DIR [/usr/include]
+  --infodir=DIR           info documentation in DIR [PREFIX/info]
+  --mandir=DIR            man documentation in DIR [PREFIX/man]
+  --srcdir=DIR            find the sources in DIR [configure dir or ..]
+  --program-prefix=PREFIX prepend PREFIX to installed program names
+  --program-suffix=SUFFIX append SUFFIX to installed program names
+  --program-transform-name=PROGRAM
+                          run sed PROGRAM on installed program names
+EOF
+    cat << EOF
+Host type:
+  --build=BUILD           configure for building on BUILD [BUILD=HOST]
+  --host=HOST             configure for HOST [guessed]
+  --target=TARGET         configure for TARGET [TARGET=HOST]
+Features and packages:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --x-includes=DIR        X include files are in DIR
+  --x-libraries=DIR       X library files are in DIR
+EOF
+    if test -n "$ac_help"; then
+      echo "--enable and --with options recognized:$ac_help"
+    fi
+    exit 0 ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host="$ac_optarg" ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir="$ac_optarg" ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir="$ac_optarg" ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir="$ac_optarg" ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir="$ac_optarg" ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst \
+  | --locals | --local | --loca | --loc | --lo)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+    localstatedir="$ac_optarg" ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir="$ac_optarg" ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir="$ac_optarg" ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix="$ac_optarg" ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix="$ac_optarg" ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix="$ac_optarg" ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name="$ac_optarg" ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir="$ac_optarg" ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir="$ac_optarg" ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site="$ac_optarg" ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir="$ac_optarg" ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir="$ac_optarg" ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target="$ac_optarg" ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers)
+    echo "configure generated by autoconf version 2.13"
+    exit 0 ;;
+
+  -with-* | --with-*)
+    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "with_${ac_package}='$ac_optarg'" ;;
+
+  -without-* | --without-*)
+    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    eval "with_${ac_package}=no" ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes="$ac_optarg" ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries="$ac_optarg" ;;
+
+  -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+    ;;
+
+  *)
+    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+      echo "configure: warning: $ac_option: invalid host type" 1>&2
+    fi
+    if test "x$nonopt" != xNONE; then
+      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+    fi
+    nonopt="$ac_option"
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+fi
+
+trap 'del -f conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+# File descriptor usage:
+# 0 standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 some systems may open it to /dev/tty
+# 4 used on the Kubota Titan
+# 6 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+  exec 6>/dev/null
+else
+  exec 6>&1
+fi
+exec 5>./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1>&5
+
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
+do
+  case "$ac_arg" in
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c) ;;
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+  esac
+done
+
+# NLS nuisances.
+# Only set these to C if already set.  These must not be set unconditionally
+# because not all systems understand e.g. LANG=C (notably SCO).
+# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+# Non-C LC_CTYPE values break the ctype check.
+if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+del -f conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo > confdefs.h
+
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=common/unicode/utypes.h
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then its parent.
+  ac_prog=$0
+  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+  test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+  srcdir=$ac_confdir
+  if test ! -r $srcdir/$ac_unique_file; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+  if test "$ac_srcdir_defaulted" = yes; then
+    { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+  else
+    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+  fi
+fi
+srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+  if test "x$prefix" != xNONE; then
+    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+  else
+    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+  fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+  if test -r "$ac_site_file"; then
+    echo "loading site script $ac_site_file"
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  echo "loading cache $cache_file"
+  . $cache_file
+else
+  echo "creating cache $cache_file"
+  > $cache_file
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+ac_exeext=
+ac_objext=o
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+    ac_n= ac_c='
+' ac_t='	'
+  else
+    ac_n=-n ac_c= ac_t=
+  fi
+else
+  ac_n= ac_c='\c' ac_t=
+fi
+
+
+
+
+PACKAGE="icu"
+
+
+echo $ac_n "checking for ICU version numbers""... $ac_c" 1>&6
+echo "configure:570: checking for ICU version numbers" >&5
+
+geticuversion() {
+    sed -n 's/^[ 	]*#[ 	]*define[ 	]*U_ICU_VERSION[ 	]*"\([^"]*\)".*/\1/p' "$@"
+}
+VERSION=`geticuversion $srcdir/common/unicode/uversion.h`
+if test x"$VERSION" = x; then
+    VERSION=`geticuversion $srcdir/common/unicode/*.h`
+    if test x"$VERSION" = x; then
+        { echo "configure: error: Cannot determine ICU version number from header files" 1>&2; exit 1; }
+    fi
+fi
+LIB_VERSION=`echo $VERSION | sed -e 's/\.//' -e 's/^\([^.]*\)$/\1.0/'`
+LIB_VERSION_MAJOR=`echo $LIB_VERSION | sed 's/\..*//'`
+
+
+
+echo "$ac_t""release $VERSION, library $LIB_VERSION" 1>&6
+
+UNICODE_VERSION="4.0.1"
+
+
+
+
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:597: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -x $ac_dir/$ac_word; then
+      ac_cv_prog_CC="gcc"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:627: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_prog_rejected=no
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -x $ac_dir/$ac_word; then
+      if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+        ac_prog_rejected=yes
+	continue
+      fi
+      ac_cv_prog_CC="cc"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# -gt 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    set dummy "$ac_dir/$ac_word" "$@"
+    shift
+    ac_cv_prog_CC="$@"
+  fi
+fi
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+  if test -z "$CC"; then
+    case "`uname -s`" in
+    *win32* | *WIN32*)
+      # Extract the first word of "cl", so it can be a program name with args.
+set dummy cl; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:678: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -x $ac_dir/$ac_word; then
+      ac_cv_prog_CC="cl"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+ ;;
+    esac
+  fi
+  test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+echo "configure:710: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+cat > conftest.$ac_ext << EOF
+
+#line 721 "configure"
+#include "confdefs.h"
+
+main(){return(0);}
+EOF
+if { (eval echo configure:726: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  ac_cv_prog_cc_works=yes
+  # If we can't run a trivial program, we are probably using a cross compiler.
+  if (./conftest; exit) 2>/dev/null; then
+    ac_cv_prog_cc_cross=no
+  else
+    ac_cv_prog_cc_cross=yes
+  fi
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  ac_cv_prog_cc_works=no
+fi
+del -f conftest*
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
+if test $ac_cv_prog_cc_works = no; then
+  { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
+fi
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+echo "configure:752: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+echo "configure:757: checking whether we are using GNU C" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.c <<EOF
+#ifdef __GNUC__
+  yes;
+#endif
+EOF
+if { ac_try='${CC-cc} -c qpponly conftest.c'; { (eval echo configure:766: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+  ac_cv_prog_gcc=yes
+else
+  ac_cv_prog_gcc=no
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gcc" 1>&6
+
+if test $ac_cv_prog_gcc = yes; then
+  GCC=yes
+else
+  GCC=
+fi
+
+ac_test_CFLAGS="${CFLAGS+set}"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS=
+echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+echo "configure:785: checking whether ${CC-cc} accepts -g" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+  ac_cv_prog_cc_g=yes
+else
+  ac_cv_prog_cc_g=no
+fi
+del -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS="$ac_save_CFLAGS"
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+
+for ac_prog in $CCC c++ g++ gcc CC cxx cc++ cl
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:821: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CXX"; then
+  ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -x $ac_dir/$ac_word; then
+      ac_cv_prog_CXX="$ac_prog"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+CXX="$ac_cv_prog_CXX"
+if test -n "$CXX"; then
+  echo "$ac_t""$CXX" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+test -n "$CXX" && break
+done
+test -n "$CXX" || CXX="gcc"
+
+
+echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+echo "configure:853: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
+
+ac_ext=C
+# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cxx_cross
+
+cat > conftest.$ac_ext << EOF
+
+#line 864 "configure"
+#include "confdefs.h"
+
+int main(){return(0);}
+EOF
+if { (eval echo configure:869: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  ac_cv_prog_cxx_works=yes
+  # If we can't run a trivial program, we are probably using a cross compiler.
+  if (./conftest; exit) 2>/dev/null; then
+    ac_cv_prog_cxx_cross=no
+  else
+    ac_cv_prog_cxx_cross=yes
+  fi
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  ac_cv_prog_cxx_works=no
+fi
+del -f conftest*
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo "$ac_t""$ac_cv_prog_cxx_works" 1>&6
+if test $ac_cv_prog_cxx_works = no; then
+  { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; }
+fi
+echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+echo "configure:895: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6
+cross_compiling=$ac_cv_prog_cxx_cross
+
+echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
+echo "configure:900: checking whether we are using GNU C++" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.C <<EOF
+#ifdef __GNUC__
+  yes;
+#endif
+EOF
+if { ac_try='${CXX-g++} -c qpponly conftest.C'; { (eval echo configure:909: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+  ac_cv_prog_gxx=yes
+else
+  ac_cv_prog_gxx=no
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gxx" 1>&6
+
+if test $ac_cv_prog_gxx = yes; then
+  GXX=yes
+else
+  GXX=
+fi
+
+ac_test_CXXFLAGS="${CXXFLAGS+set}"
+ac_save_CXXFLAGS="$CXXFLAGS"
+CXXFLAGS=
+echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
+echo "configure:928: checking whether ${CXX-g++} accepts -g" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  echo 'void f(){}' > conftest.cc
+if test -z "`${CXX-g++} -g -c conftest.cc 2>&1`"; then
+  ac_cv_prog_cxx_g=yes
+else
+  ac_cv_prog_cxx_g=no
+fi
+del -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6
+if test "$ac_test_CXXFLAGS" = set; then
+  CXXFLAGS="$ac_save_CXXFLAGS"
+elif test $ac_cv_prog_cxx_g = yes; then
+  if test "$GXX" = yes; then
+    CXXFLAGS="-g -O2"
+  else
+    CXXFLAGS="-g"
+  fi
+else
+  if test "$GXX" = yes; then
+    CXXFLAGS="-O2"
+  else
+    CXXFLAGS=
+  fi
+fi
+
+for ac_declaration in \
+   ''\
+   '#include <stdlib.h>' \
+   'extern "C" void std::exit (int) throw (); using std::exit;' \
+   'extern "C" void std::exit (int); using std::exit;' \
+   'extern "C" void exit (int) throw ();' \
+   'extern "C" void exit (int);' \
+   'void exit (int);'
+do
+  cat > conftest.$ac_ext <<EOF
+#line 969 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+$ac_declaration
+int main() {
+exit (42);
+; return 0; }
+EOF
+if { (eval echo configure:977: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  continue
+fi
+rm -f conftest*
+  cat > conftest.$ac_ext <<EOF
+#line 987 "configure"
+#include "confdefs.h"
+$ac_declaration
+int main() {
+exit (42);
+; return 0; }
+EOF
+if { (eval echo configure:994: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+done
+if test -n "$ac_declaration"; then
+  echo '#ifdef __cplusplus' >>confdefs.h
+  echo $ac_declaration      >>confdefs.h
+  echo '#endif'             >>confdefs.h
+fi
+
+
+ac_aux_dir=
+for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+  if test -f $ac_dir/install-sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f $ac_dir/install.sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
+fi
+ac_config_guess=$ac_aux_dir/config.guess
+ac_config_sub=$ac_aux_dir/config.sub
+ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# ./install, which can be erroneously created by make from ./install.sh.
+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
+echo "configure:1041: checking for a BSD compatible install" >&5
+if test -z "$INSTALL"; then
+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+    IFS="${IFS= 	}"; ac_save_IFS="$IFS"; IFS=":"
+  for ac_dir in $PATH; do
+    # Account for people who put trailing slashes in PATH elements.
+    case "$ac_dir/" in
+    /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+    *)
+      # OSF1 and SCO ODT 3.0 have their own names for install.
+      # Don't use installbsd from OSF since it installs stuff as root
+      # by default.
+      for ac_prog in ginstall scoinst install; do
+        if test -f $ac_dir/$ac_prog; then
+	  if test $ac_prog = install &&
+            grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+	    # AIX install.  It has an incompatible calling convention.
+	    :
+	  else
+	    ac_cv_path_install="$ac_dir/$ac_prog -c"
+	    break 2
+	  fi
+	fi
+      done
+      ;;
+    esac
+  done
+  IFS="$ac_save_IFS"
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL="$ac_cv_path_install"
+  else
+    # As a last resort, use the slow shell script.  We don't cache a
+    # path for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the path is relative.
+    INSTALL="$ac_install_sh"
+  fi
+fi
+echo "$ac_t""$INSTALL" 1>&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+
+# make sure install is relative to srcdir - if a script
+if test "$srcdir" = "."; then
+  # If srcdir isn't just ., then (srcdir) is already prepended.
+  if test "${ac_install_sh}" = "${INSTALL}"; then
+   INSTALL="\\\$(top_srcdir)/${ac_install_sh}"
+  fi
+fi
+
+#AC_CHECK_PROG(AUTOCONF, autoconf, autoconf, true)
+# Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1106: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$STRIP"; then
+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -x $ac_dir/$ac_word; then
+      ac_cv_prog_STRIP="strip"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_STRIP" && ac_cv_prog_STRIP="true"
+fi
+fi
+STRIP="$ac_cv_prog_STRIP"
+if test -n "$STRIP"; then
+  echo "$ac_t""$STRIP" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+for ac_prog in gmake gnumake
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1139: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_U_MAKE'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$U_MAKE" in
+  /*)
+  ac_cv_path_U_MAKE="$U_MAKE" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_U_MAKE="$U_MAKE" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -x $ac_dir/$ac_word; then
+      ac_cv_path_U_MAKE="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  ;;
+esac
+fi
+U_MAKE="$ac_cv_path_U_MAKE"
+if test -n "$U_MAKE"; then
+  echo "$ac_t""$U_MAKE" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+test -n "$U_MAKE" && break
+done
+test -n "$U_MAKE" || U_MAKE="make"
+
+
+
+# Extract the first word of "doxygen", so it can be a program name with args.
+set dummy doxygen; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1180: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_DOXYGEN'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$DOXYGEN" in
+  /*)
+  ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH:/usr/local/bin:/usr/bin"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -x $ac_dir/$ac_word; then
+      ac_cv_path_DOXYGEN="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  ;;
+esac
+fi
+DOXYGEN="$ac_cv_path_DOXYGEN"
+if test -n "$DOXYGEN"; then
+  echo "$ac_t""$DOXYGEN" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+
+# Make sure we can run config.sub.
+if ${CONFIG_SHELL-/usr/bin/qsh} $ac_config_sub sun4 >/dev/null 2>&1; then :
+else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking host system type""... $ac_c" 1>&6
+echo "configure:1220: checking host system type" >&5
+
+host_alias=$host
+case "$host_alias" in
+NONE)
+  case $nonopt in
+  NONE)
+    if host_alias=`${CONFIG_SHELL-/usr/bin/qsh} $ac_config_guess`; then :
+    else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
+    fi ;;
+  *) host_alias=$nonopt ;;
+  esac ;;
+esac
+
+host=`${CONFIG_SHELL-/usr/bin/qsh} $ac_config_sub $host_alias`
+host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+echo "$ac_t""$host" 1>&6
+
+echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
+echo "configure:1241: checking for Cygwin environment" >&5
+if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1246 "configure"
+#include "confdefs.h"
+
+int main() {
+
+#ifndef __CYGWIN__
+#define __CYGWIN__ __CYGWIN32__
+#endif
+return __CYGWIN__;
+; return 0; }
+EOF
+if { (eval echo configure:1257: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_cygwin=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_cygwin=no
+fi
+rm -f conftest*
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_cygwin" 1>&6
+CYGWIN=
+test "$ac_cv_cygwin" = yes && CYGWIN=yes
+echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
+echo "configure:1274: checking for mingw32 environment" >&5
+if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1279 "configure"
+#include "confdefs.h"
+
+int main() {
+return __MINGW32__;
+; return 0; }
+EOF
+if { (eval echo configure:1286: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_mingw32=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_mingw32=no
+fi
+rm -f conftest*
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_mingw32" 1>&6
+MINGW32=
+test "$ac_cv_mingw32" = yes && MINGW32=yes
+
+
+echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
+echo "configure:1305: checking for executable suffix" >&5
+if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$CYGWIN" = yes || test "$MINGW32" = yes; then
+  ac_cv_exeext=.exe
+else
+  rm -f conftest*
+  echo 'int main () { return 0; }' > conftest.$ac_ext
+  ac_cv_exeext=
+  if { (eval echo configure:1315: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+    for file in conftest.*; do
+      case $file in
+      *.c | *.o | *.obj) ;;
+      *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
+      esac
+    done
+  else
+    { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; }
+  fi
+  rm -f conftest*
+  test x"${ac_cv_exeext}" = x && ac_cv_exeext=no
+fi
+fi
+
+EXEEXT=""
+test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext}
+echo "$ac_t""${ac_cv_exeext}" 1>&6
+ac_exeext=$EXEEXT
+
+
+
+    echo $ac_n "checking whether strict compiling is on""... $ac_c" 1>&6
+echo "configure:1338: checking whether strict compiling is on" >&5
+    # Check whether --enable-strict or --disable-strict was given.
+if test "${enable_strict+set}" = set; then
+  enableval="$enable_strict"
+  
+    	if test "$enableval" = no
+    	then
+	    ac_use_strict_options=no
+        else
+	    ac_use_strict_options=yes
+        fi
+      
+else
+  ac_use_strict_options=no
+fi
+
+    echo "$ac_t""$ac_use_strict_options" 1>&6
+
+    if test "$ac_use_strict_options" = yes
+    then
+        if test "$GCC" = yes
+        then
+            CFLAGS="$CFLAGS -Wall -ansi -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -Winline -Wno-long-long"
+            case "${host}" in
+            *-*-solaris*)
+                CFLAGS="$CFLAGS -D__STDC__=0";;
+            esac
+        fi
+        if test "$GXX" = yes
+        then
+            CXXFLAGS="$CXXFLAGS -W -Wall -ansi -pedantic -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -Winline -Wno-long-long"
+            case "${host}" in
+            *-*-solaris*)
+                CXXFLAGS="$CXXFLAGS -D__STDC__=0";;
+            esac
+        fi
+    fi
+
+
+
+    # Check whether --enable-64bit-libs or --disable-64bit-libs was given.
+if test "${enable_64bit_libs+set}" = set; then
+  enableval="$enable_64bit_libs"
+  ENABLE_64BIT_LIBS=${enableval}
+else
+  ENABLE_64BIT_LIBS=yes
+    
+fi
+
+        echo $ac_n "checking for 64-bit executable support""... $ac_c" 1>&6
+echo "configure:1388: checking for 64-bit executable support" >&5
+    if test "$ENABLE_64BIT_LIBS" = no; then
+        case "${host}" in
+        *-*-hpux*)
+#            case "${CXX}" in
+#            *CC)
+#                CFLAGS="${CFLAGS} +DAportable"
+#                CXXFLAGS="${CXXFLAGS} +DAportable"
+#                ;;
+#            esac;;
+        esac
+    else
+        case "${host}" in
+        *-*-solaris*)
+            if test "$ac_cv_prog_gcc" = no; then
+                SOL64=`$CXX -xarch=v9 2>&1 && $CC -xarch=v9 2>&1 | grep -v usage:`
+                SPARCV9=`isainfo -n 2>&1 | grep sparcv9`
+                if test -z "$SOL64" && test -n "$SPARCV9"; then
+                    CFLAGS="${CFLAGS} -xtarget=ultra -xarch=v9"
+                    CXXFLAGS="${CXXFLAGS} -xtarget=ultra -xarch=v9"
+                    LDFLAGS="${LDFLAGS} -xtarget=ultra -xarch=v9"
+                    ENABLE_64BIT_LIBS=yes
+                else
+                    ENABLE_64BIT_LIBS=no
+                fi
+            else
+                ENABLE_64BIT_LIBS=no
+            fi
+            ;;
+        *-*-aix*)
+            if test "$ac_cv_prog_gcc" = no; then
+             # Note: Have not tested 64-bitness with gcc.
+             # Maybe the flag "-maix64" could be used with gcc?
+             OLD_CFLAGS="${CFLAGS}"
+             OLD_CXXFLAGS="${CXXFLAGS}"
+             OLD_LDFLAGS="${LDFLAGS}"
+             CFLAGS="${CFLAGS} -q64"
+             CXXFLAGS="${CXXFLAGS} -q64"
+             LDFLAGS="${LDFLAGS} -q64"
+             if test "$cross_compiling" = yes; then
+  ENABLE_64BIT_LIBS=no
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1431 "configure"
+#include "confdefs.h"
+int main(void) {return 0;}
+EOF
+if { (eval echo configure:1435: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ENABLE_64BIT_LIBS=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ENABLE_64BIT_LIBS=no
+fi
+rm -fr conftest*
+fi
+
+             if test "$ENABLE_64BIT_LIBS" = no; then
+                CFLAGS="${OLD_CFLAGS}"
+                CXXFLAGS="${OLD_CXXFLAGS}"
+                LDFLAGS="${OLD_LDFLAGS}"
+             else
+                ARFLAGS="${ARFLAGS} -X64"
+             fi
+            fi
+            ;;
+        *-*-hpux*)
+                        
+            OLD_CFLAGS="${CFLAGS}"
+            OLD_CXXFLAGS="${CXXFLAGS}"
+            CFLAGS="${CFLAGS} +DD64"
+            CXXFLAGS="${CXXFLAGS} +DD64"
+            if test "$cross_compiling" = yes; then
+  ENABLE_64BIT_LIBS=no
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1466 "configure"
+#include "confdefs.h"
+int main(void) {return 0;}
+EOF
+if { (eval echo configure:1470: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ENABLE_64BIT_LIBS=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ENABLE_64BIT_LIBS=no
+fi
+rm -fr conftest*
+fi
+
+            if test "$ENABLE_64BIT_LIBS" = no; then
+                CFLAGS="${OLD_CFLAGS}"
+                CXXFLAGS="${OLD_CXXFLAGS}"
+                CFLAGS="${CFLAGS} +DA2.0W"
+                CXXFLAGS="${CXXFLAGS} +DA2.0W"
+                if test "$cross_compiling" = yes; then
+  ENABLE_64BIT_LIBS=no
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1491 "configure"
+#include "confdefs.h"
+int main(void) {return 0;}
+EOF
+if { (eval echo configure:1495: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ENABLE_64BIT_LIBS=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ENABLE_64BIT_LIBS=no
+fi
+rm -fr conftest*
+fi
+
+                if test "$ENABLE_64BIT_LIBS" = no; then
+                    CFLAGS="${OLD_CFLAGS}"
+                    CXXFLAGS="${OLD_CXXFLAGS}"
+                fi
+            fi
+            ;;
+        *)
+            ENABLE_64BIT_LIBS=no
+            ;;
+        esac
+    fi
+        echo "$ac_t""$ENABLE_64BIT_LIBS" 1>&6
+
+
+
+
+
+	echo $ac_n "checking which Makefile fragment to use""... $ac_c" 1>&6
+echo "configure:1525: checking which Makefile fragment to use" >&5
+if eval "test \"`echo '$''{'icu_cv_host_frag'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+case "${host}" in
+*-*-solaris*)
+	if test "$ac_cv_prog_gcc" = yes; then	
+		icu_cv_host_frag=mh-solaris-gcc 
+	else
+		icu_cv_host_frag=mh-solaris
+	fi ;;
+alpha*-*-linux-gnu)
+	if test "$ac_cv_prog_gcc" = yes; then
+		icu_cv_host_frag=mh-alpha-linux-gcc
+	else  
+		icu_cv_host_frag=mh-alpha-linux-cc
+	fi ;;
+*-*-linux*) icu_cv_host_frag=mh-linux ;;
+*-*-cygwin)
+	if test "$ac_cv_prog_gcc" = yes; then
+	  	icu_cv_host_frag=mh-cygwin
+	else
+	  	icu_cv_host_frag=mh-cygwin-msvc
+	fi ;;
+*-*-*bsd*) 	icu_cv_host_frag=mh-bsd-gcc ;;
+*-*-aix*)
+       if test "$ac_cv_prog_gcc" = yes; then
+        icu_cv_host_frag=mh-aix-gcc
+       else
+	if test -n "`$CXX --help 2>&1 | grep 'IBM C and C++ Compilers$'`"; then
+		icu_cv_host_frag=mh-aix
+	else
+		icu_cv_host_frag=mh-aix-va
+       fi
+	fi ;;
+*-*-hpux*)
+	if test "$ac_cv_prog_gcc" = yes; then
+		icu_cv_host_frag=mh-hpux-gcc
+	else
+		case "$CXX" in
+		*aCC)    icu_cv_host_frag=mh-hpux-acc ;;
+		*CC)     icu_cv_host_frag=mh-hpux-cc ;;
+		esac
+	fi ;;
+*-*ibm-openedition*|*-*-os390*)	icu_cv_host_frag=mh-os390 ;;
+*-*-os400*)	icu_cv_host_frag=mh-os400 ;;
+*-apple-rhapsody*)	icu_cv_host_frag=mh-darwin ;;
+*-apple-darwin*)	icu_cv_host_frag=mh-darwin ;;
+*-*-beos)	icu_cv_host_frag=mh-beos ;;
+*-*-irix*)	icu_cv_host_frag=mh-irix ;;
+*-dec-osf*) icu_cv_host_frag=mh-alpha-osf ;;
+*-*-nto*)	icu_cv_host_frag=mh-qnx ;;
+*-ncr-*)	icu_cv_host_frag=mh-mpras ;;
+*-sequent-*) 	icu_cv_host_frag=mh-ptx ;;
+*) 		icu_cv_host_frag=mh-unknown ;;
+esac
+		
+	
+fi
+
+echo "$ac_t""$icu_cv_host_frag" 1>&6
+
+
+case "${host}" in
+	*-*-hpux*) 	echo $ac_n "checking for floor in -lm""... $ac_c" 1>&6
+echo "configure:1591: checking for floor in -lm" >&5
+ac_lib_var=`echo m'_'floor | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lm  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 1599 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char floor();
+
+int main() {
+floor()
+; return 0; }
+EOF
+if { (eval echo configure:1610: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+del -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  LIB_M="-lm"
+else
+  echo "$ac_t""no" 1>&6
+fi
+ ;;
+	
+	*) 		echo $ac_n "checking for floor in -lm""... $ac_c" 1>&6
+echo "configure:1632: checking for floor in -lm" >&5
+ac_lib_var=`echo m'_'floor | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lm  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 1640 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char floor();
+
+int main() {
+floor()
+; return 0; }
+EOF
+if { (eval echo configure:1651: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+del -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo m | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
+
+  LIBS="-lm $LIBS"
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+ 
+			LIB_M="" ;;
+esac
+
+
+echo $ac_n "checking whether to build shared libraries""... $ac_c" 1>&6
+echo "configure:1683: checking whether to build shared libraries" >&5
+enabled=no
+# Check whether --enable-shared or --disable-shared was given.
+if test "${enable_shared+set}" = set; then
+  enableval="$enable_shared"
+   case "${enableval}" in
+	     yes|"") enabled=yes; ENABLE_SHARED=YES ;;
+	     no);;
+	     *) ;;
+    esac
+else
+  enabled=yes; ENABLE_SHARED=YES
+
+fi
+
+echo "$ac_t""$enabled" 1>&6
+
+
+echo $ac_n "checking whether to build static libraries""... $ac_c" 1>&6
+echo "configure:1702: checking whether to build static libraries" >&5
+enabled=no
+# Check whether --enable-static or --disable-static was given.
+if test "${enable_static+set}" = set; then
+  enableval="$enable_static"
+   case "${enableval}" in
+	     yes|"") enabled=yes; ENABLE_STATIC=YES ;;
+	     no) ;;
+	     *) ;;
+    esac
+fi
+
+echo "$ac_t""$enabled" 1>&6
+
+
+echo $ac_n "checking whether to build debug libraries""... $ac_c" 1>&6
+echo "configure:1718: checking whether to build debug libraries" >&5
+enabled=no
+ENABLE_DEBUG=0
+# Check whether --enable-debug or --disable-debug was given.
+if test "${enable_debug+set}" = set; then
+  enableval="$enable_debug"
+   case "${enableval}" in
+         yes|"") enabled=yes; ENABLE_DEBUG=1 ;;
+         *) ;;
+    esac
+fi
+
+echo "$ac_t""$enabled" 1>&6
+
+
+echo $ac_n "checking whether to build release libraries""... $ac_c" 1>&6
+echo "configure:1734: checking whether to build release libraries" >&5
+enabled=yes
+ENABLE_RELEASE=1
+# Check whether --enable-release or --disable-release was given.
+if test "${enable_release+set}" = set; then
+  enableval="$enable_release"
+   case "${enableval}" in
+         no) enabled=no; ENABLE_RELEASE=0 ;;
+         *) ;;
+    esac
+fi
+
+echo "$ac_t""$enabled" 1>&6
+
+
+# Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1752: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -x $ac_dir/$ac_word; then
+      ac_cv_prog_RANLIB="ranlib"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
+fi
+fi
+RANLIB="$ac_cv_prog_RANLIB"
+if test -n "$RANLIB"; then
+  echo "$ac_t""$RANLIB" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+# Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1782: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_AR'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$AR" in
+  /*)
+  ac_cv_path_AR="$AR" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_AR="$AR" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH:/bin:/usr/bin:/usr/ccs/bin"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_AR="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_AR" && ac_cv_path_AR="echo archiver ar not found re-run configure ; false"
+  ;;
+esac
+fi
+AR="$ac_cv_path_AR"
+if test -n "$AR"; then
+  echo "$ac_t""$AR" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+echo $ac_n "checking whether to enable renaming of symbols""... $ac_c" 1>&6
+echo "configure:1817: checking whether to enable renaming of symbols" >&5
+enabled=yes
+U_DISABLE_RENAMING=0
+# Check whether --enable-renaming or --disable-renaming was given.
+if test "${enable_renaming+set}" = set; then
+  enableval="$enable_renaming"
+   case "${enableval}" in
+	     yes|"") enabled=yes ;;
+	     no) enabled=no; U_DISABLE_RENAMING=1 ;;
+	     *) ;;
+    esac
+fi
+
+echo "$ac_t""$enabled" 1>&6
+
+
+echo $ac_n "checking whether to enable function and data tracing""... $ac_c" 1>&6
+echo "configure:1834: checking whether to enable function and data tracing" >&5
+enabled=yes
+U_ENABLE_TRACING=1
+# Check whether --enable-tracing or --disable-tracing was given.
+if test "${enable_tracing+set}" = set; then
+  enableval="$enable_tracing"
+   case "${enableval}" in
+	     yes|"") enabled=yes ;;
+	     no) enabled=no; U_ENABLE_TRACING=0 ;;
+	     *) ;;
+    esac
+fi
+
+echo "$ac_t""$enabled" 1>&6
+
+
+# Check whether --enable-rpath or --disable-rpath was given.
+if test "${enable_rpath+set}" = set; then
+  enableval="$enable_rpath"
+   case "${enableval}" in
+	     yes|"") ENABLE_RPATH=YES ;;
+	     no) ;;
+	     *) ;;
+    esac
+else
+  ENABLE_RPATH=NO
+
+fi
+
+
+
+
+echo $ac_n "checking for definition of U_INLINE for C""... $ac_c" 1>&6
+echo "configure:1867: checking for definition of U_INLINE for C" >&5
+if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_cv_c_inline=no
+for ac_kw in inline __inline__ __inline; do
+  cat > conftest.$ac_ext <<EOF
+#line 1874 "configure"
+#include "confdefs.h"
+
+int main() {
+} $ac_kw foo() {
+; return 0; }
+EOF
+if { (eval echo configure:1881: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  del -f conftest*
+  ac_cv_c_inline=$ac_kw; break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+del -f conftest*
+  done
+  
+fi
+
+echo "$ac_t""$ac_cv_c_inline" 1>&6
+case "$ac_cv_c_inline" in
+      yes)       U_INLINE= "inline" ;;
+	  no )       U_INLINE= ;;
+	    *)       U_INLINE=$ac_cv_c_inline ;;
+esac
+
+
+threads=true
+
+# Check whether --enable-threads or --disable-threads was given.
+if test "${enable_threads+set}" = set; then
+  enableval="$enable_threads"
+  case "${enableval}" in
+		yes) threads=true ;;
+		no)  threads=false ;;
+		*) { echo "configure: error: bad value ${enableval} for --enable-threads" 1>&2; exit 1; } ;;
+		esac
+else
+  threads=true
+fi
+
+
+if test "$threads" = true; then
+  THREADS_TRUE=
+else
+  THREADS_TRUE='#'
+fi
+
+ICU_USE_THREADS=0
+
+if test $threads = true; then
+           
+  echo $ac_n "checking for pthread_attr_init in -lpthread""... $ac_c" 1>&6
+echo "configure:1927: checking for pthread_attr_init in -lpthread" >&5
+ac_lib_var=`echo pthread'_'pthread_attr_init | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lpthread  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 1935 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char pthread_attr_init();
+
+int main() {
+pthread_attr_init()
+; return 0; }
+EOF
+if { (eval echo configure:1946: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+del -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo pthread | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
+
+  LIBS="-lpthread $LIBS"
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+  if test $ac_cv_lib_pthread_pthread_attr_init = yes; then
+   ICU_USE_THREADS=1
+  else
+               
+   
+echo $ac_n "checking for library containing pthread_mutex_destroy""... $ac_c" 1>&6
+echo "configure:1979: checking for library containing pthread_mutex_destroy" >&5
+if eval "test \"`echo '$''{'ac_cv_search_pthread_mutex_destroy'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_func_search_save_LIBS="$LIBS"
+ac_cv_search_pthread_mutex_destroy="no"
+for i in pthread pthreads c_r ; do
+LIBS="-l$i  $ac_func_search_save_LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 1988 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char pthread_mutex_destroy();
+
+int main() {
+pthread_mutex_destroy()
+; return 0; }
+EOF
+if { (eval echo configure:1999: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_search_pthread_mutex_destroy="-l$i"
+break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+del -f conftest*
+done
+if test "$ac_cv_search_pthread_mutex_destroy" = "no"; then
+cat > conftest.$ac_ext <<EOF
+#line 2011 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char pthread_mutex_destroy();
+
+int main() {
+pthread_mutex_destroy()
+; return 0; }
+EOF
+if { (eval echo configure:2022: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_search_pthread_mutex_destroy="none required"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+del -f conftest*
+fi
+LIBS="$ac_func_search_save_LIBS"
+fi
+
+echo "$ac_t""$ac_cv_search_pthread_mutex_destroy" 1>&6
+if test "$ac_cv_search_pthread_mutex_destroy" != "no"; then
+  test "$ac_cv_search_pthread_mutex_destroy" = "none required" || LIBS="$ac_cv_search_pthread_mutex_destroy $LIBS"
+  
+else :
+  
+fi
+
+   if test "$ac_cv_search_pthread_mutex_destroy" != no; then
+    ICU_USE_THREADS=1
+   else
+        echo $ac_n "checking for pthread_mutex_init in -lpthread""... $ac_c" 1>&6
+echo "configure:2046: checking for pthread_mutex_init in -lpthread" >&5
+ac_lib_var=`echo pthread'_'pthread_mutex_init | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lpthread  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2054 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char pthread_mutex_init();
+
+int main() {
+pthread_mutex_init()
+; return 0; }
+EOF
+if { (eval echo configure:2065: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+del -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo pthread | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
+
+  LIBS="-lpthread $LIBS"
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+    if test $ac_cv_lib_pthread_pthread_mutex_init = yes; then
+      ICU_USE_THREADS=1
+    fi
+   fi
+
+   echo $ac_n "checking for pthread_mutex_lock""... $ac_c" 1>&6
+echo "configure:2098: checking for pthread_mutex_lock" >&5
+if eval "test \"`echo '$''{'ac_cv_func_pthread_mutex_lock'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2103 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char pthread_mutex_lock(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char pthread_mutex_lock();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_pthread_mutex_lock) || defined (__stub___pthread_mutex_lock)
+choke me
+#else
+pthread_mutex_lock();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2126: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_func_pthread_mutex_lock=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_func_pthread_mutex_lock=no"
+fi
+del -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'pthread_mutex_lock`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+   if test $ac_cv_func_pthread_mutex_lock = yes; then
+     ICU_USE_THREADS=1
+   fi
+      case "${host}" in
+   *-pc-cygwin*|*-pc-mingw*)
+     if test "$ac_cv_prog_gcc" = no; then
+              ICU_USE_THREADS=1
+     fi ;;
+   esac
+  fi
+fi
+
+
+
+
+# The AC_FUNC_MMAP macro doesn't work properly.  It seems to be too specific.
+# Do this check instead.
+HAVE_MMAP=0
+echo $ac_n "checking for mmap""... $ac_c" 1>&6
+echo "configure:2165: checking for mmap" >&5
+if eval "test \"`echo '$''{'ac_cv_func_mmap_ok'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2170 "configure"
+#include "confdefs.h"
+    
+#include <unistd.h>
+#include <sys/mman.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+    
+int main() {
+    mmap((void *)0, 0, PROT_READ, 0, 0, 0);
+; return 0; }
+EOF
+if { (eval echo configure:2182: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_func_mmap_ok=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_func_mmap_ok=no
+fi
+del -f conftest* 
+fi
+
+echo "$ac_t""$ac_cv_func_mmap_ok" 1>&6
+if test $ac_cv_func_mmap_ok = yes
+then
+    HAVE_MMAP=1
+fi
+
+
+GENCCODE_ASSEMBLY=
+if test "$GCC" = yes; then
+        GENCCODE_ASSEMBLY="-a gcc"
+fi
+
+
+
+echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+echo "configure:2209: checking how to run the C preprocessor" >&5
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+    # This must be in double quotes, not single quotes, because CPP may get
+  # substituted into the Makefile and "${CC-cc}" will confuse make.
+  CPP="${CC-cc} -c -qpponly"
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp.
+  cat > conftest.$ac_ext <<EOF
+#line 2224 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2230: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  CPP="${CC-cc} -c qpponly -traditional-cpp"
+  cat > conftest.$ac_ext <<EOF
+#line 2241 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2247: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  CPP="${CC-cc} -nologo -c -qpponly"
+  cat > conftest.$ac_ext <<EOF
+#line 2258 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2264: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  CPP=/usr/bin/icc
+fi
+del -f conftest*
+fi
+del -f conftest*
+fi
+del -f conftest*
+  ac_cv_prog_CPP="$CPP"
+fi
+  CPP="$ac_cv_prog_CPP"
+else
+  ac_cv_prog_CPP="$CPP"
+fi
+echo "$ac_t""$CPP" 1>&6
+
+for ac_hdr in inttypes.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:2292: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2297 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2302: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  del -f conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+del -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+if test $ac_cv_header_inttypes_h = no; then
+ U_HAVE_INTTYPES_H=0
+else
+ U_HAVE_INTTYPES_H=1
+fi
+if test "$CC" = ccc; then
+ echo "$ac_t"""C compiler set to CCC ${CC}" " 1>&6
+ case "${host}" in
+        alpha*-*-*) U_HAVE_INTTYPES_H=0;
+ esac
+fi
+
+
+
+# Check whether --with-iostream or --without-iostream was given.
+if test "${with_iostream+set}" = set; then
+  withval="$with_iostream"
+  case "${withval}" in
+		none) streams=none ;;
+		old) streams=198506 ;;
+		std) streams=199711 ;;
+		auto) streams= ;;
+		*) { echo "configure: error: bad value ${withval} for --with-iostream" 1>&2; exit 1; } ;;
+		esac
+else
+  streams=
+fi
+
+
+U_IOSTREAM_SOURCE=0
+if test x$streams != xnone
+then
+    
+    ac_ext=C
+# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cxx_cross
+
+    OLD_CXXFLAGS="${CXXFLAGS}"
+    case "${host}" in
+        *-*-hpux*) 	
+            CXXFLAGS="${CXXFLAGS} -AA"
+        ;;
+    esac
+    echo $ac_n "checking iostream usability""... $ac_c" 1>&6
+echo "configure:2375: checking iostream usability" >&5
+    cat > conftest.$ac_ext <<EOF
+#line 2377 "configure"
+#include "confdefs.h"
+#include <iostream>
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:2384: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_header_iostream=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_header_iostream=no
+fi
+rm -f conftest*
+    echo "$ac_t""$ac_cv_header_iostream" 1>&6
+    if test $ac_cv_header_iostream = yes
+    then
+        U_IOSTREAM_SOURCE=199711
+    else
+        CXXFLAGS="${OLD_CXXFLAGS}"
+        echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6
+echo "configure:2401: checking how to run the C++ preprocessor" >&5
+if test -z "$CXXCPP"; then
+if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_ext=C
+# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cxx_cross
+  CXXCPP="${CXX-g++} -c -qpponly"
+  cat > conftest.$ac_ext <<EOF
+#line 2414 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2419: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  CXXCPP=/usr/bin/icc
+fi
+del -f conftest*
+  ac_cv_prog_CXXCPP="$CXXCPP"
+ac_ext=C
+# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cxx_cross
+fi
+fi
+CXXCPP="$ac_cv_prog_CXXCPP"
+echo "$ac_t""$CXXCPP" 1>&6
+
+ac_safe=`echo "iostream.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for iostream.h""... $ac_c" 1>&6
+echo "configure:2445: checking for iostream.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2450 "configure"
+#include "confdefs.h"
+#include <iostream.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2455: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  del -f conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+del -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+        if test $ac_cv_header_iostream_h = yes; then
+            echo $ac_n "checking whether ostream is really defined""... $ac_c" 1>&6
+echo "configure:2478: checking whether ostream is really defined" >&5
+            if eval "test \"`echo '$''{'ac_cv_iostream_ok'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2483 "configure"
+#include "confdefs.h"
+#include <iostream.h>
+int main() {
+ostream &testout = cout; testout << "test" << endl;
+; return 0; }
+EOF
+if { (eval echo configure:2490: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_iostream_ok=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_iostream_ok=no
+fi
+del -f conftest*
+fi
+
+            echo "$ac_t""$ac_cv_iostream_ok" 1>&6
+            if test $ac_cv_iostream_ok = yes
+            then
+                U_IOSTREAM_SOURCE=198506
+            fi
+        fi
+    fi
+    if test x$streams != x
+    then
+        if test $U_IOSTREAM_SOURCE -ge $streams
+        then
+            U_IOSTREAM_SOURCE=$streams
+            case "${host}" in
+                *-*-hpux*)
+                    if test $U_IOSTREAM_SOURCE -lt 199711; then
+                        CXXFLAGS=${OLD_CXXFLAGS}
+                    fi
+                ;;
+            esac
+        else
+            { echo "configure: error: ${withval} iostream is not available" 1>&2; exit 1; }
+        fi
+    fi
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+
+echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
+echo "configure:2536: checking whether byte ordering is bigendian" >&5
+if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_cv_c_bigendian=unknown
+# See if sys/param.h defines the BYTE_ORDER macro.
+cat > conftest.$ac_ext <<EOF
+#line 2543 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <sys/param.h>
+int main() {
+
+#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
+ bogus endian macros
+#endif
+; return 0; }
+EOF
+if { (eval echo configure:2554: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  del -f conftest*
+  # It does; now see whether it defined to BIG_ENDIAN or not.
+cat > conftest.$ac_ext <<EOF
+#line 2558 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <sys/param.h>
+int main() {
+
+#if BYTE_ORDER != BIG_ENDIAN
+ not big endian
+#endif
+; return 0; }
+EOF
+if { (eval echo configure:2569: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  del -f conftest*
+  ac_cv_c_bigendian=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_c_bigendian=no
+fi
+del -f conftest*
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+del -f conftest*
+if test $ac_cv_c_bigendian = unknown; then
+if test "$cross_compiling" = yes; then
+    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2589 "configure"
+#include "confdefs.h"
+main () {
+  /* Are we little or big endian?  From Harbison&Steele.  */
+  union
+  {
+    long l;
+    char c[sizeof (long)];
+  } u;
+  u.l = 1;
+  exit (u.c[sizeof (long) - 1] == 1);
+}
+EOF
+if { (eval echo configure:2602: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ac_cv_c_bigendian=no
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_c_bigendian=yes
+fi
+del -f conftest*
+fi
+
+fi
+fi
+
+echo "$ac_t""$ac_cv_c_bigendian" 1>&6
+if test $ac_cv_c_bigendian = yes; then
+  cat >> confdefs.h <<\EOF
+#define WORDS_BIGENDIAN 1
+EOF
+
+fi
+
+if test $ac_cv_c_bigendian = no; then
+U_IS_BIG_ENDIAN=0
+U_ENDIAN_CHAR="l"
+else
+U_IS_BIG_ENDIAN=1
+U_ENDIAN_CHAR="b"
+fi
+
+
+U_HAVE_NL_LANGINFO_CODESET=0
+U_NL_LANGINFO_CODESET=-1
+echo $ac_n "checking for nl_langinfo""... $ac_c" 1>&6
+echo "configure:2637: checking for nl_langinfo" >&5
+if eval "test \"`echo '$''{'ac_cv_func_nl_langinfo'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2642 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char nl_langinfo(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char nl_langinfo();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_nl_langinfo) || defined (__stub___nl_langinfo)
+choke me
+#else
+nl_langinfo();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2665: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_func_nl_langinfo=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_func_nl_langinfo=no"
+fi
+del -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'nl_langinfo`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  U_HAVE_NL_LANGINFO=1
+else
+  echo "$ac_t""no" 1>&6
+U_HAVE_NL_LANGINFO=0
+fi
+
+
+if test $U_HAVE_NL_LANGINFO -eq 1; then
+  echo $ac_n "checking for nl_langinfo's argument to obtain the codeset""... $ac_c" 1>&6
+echo "configure:2688: checking for nl_langinfo's argument to obtain the codeset" >&5
+if eval "test \"`echo '$''{'ac_cv_nl_langinfo_codeset'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_cv_nl_langinfo_codeset="unknown"
+  for a in CODESET _NL_CTYPE_CODESET_NAME; do
+  cat > conftest.$ac_ext <<EOF
+#line 2695 "configure"
+#include "confdefs.h"
+#include <langinfo.h>
+int main() {
+nl_langinfo($a);
+; return 0; }
+EOF
+if { (eval echo configure:2702: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_nl_langinfo_codeset="$a"; break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+del -f conftest*
+  done
+fi
+
+echo "$ac_t""$ac_cv_nl_langinfo_codeset" 1>&6
+  if test x$ac_cv_nl_langinfo_codeset != xunknown
+  then
+      U_HAVE_NL_LANGINFO_CODESET=1
+      U_NL_LANGINFO_CODESET=$ac_cv_nl_langinfo_codeset
+  fi
+fi
+
+
+
+ac_ext=C
+# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cxx_cross
+
+echo $ac_n "checking for namespace support""... $ac_c" 1>&6
+echo "configure:2731: checking for namespace support" >&5
+if eval "test \"`echo '$''{'ac_cv_namespace_ok'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2736 "configure"
+#include "confdefs.h"
+    namespace x_version {void f(){}};
+    namespace x = x_version;
+    using namespace x_version;
+    
+int main() {
+    f();
+; return 0; }
+EOF
+if { (eval echo configure:2746: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_namespace_ok=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_namespace_ok=no
+fi
+del -f conftest* 
+fi
+
+echo "$ac_t""$ac_cv_namespace_ok" 1>&6
+U_HAVE_NAMESPACE=1
+if test $ac_cv_namespace_ok = no
+then
+    U_HAVE_NAMESPACE=0
+fi
+
+
+echo $ac_n "checking for properly overriding new and delete""... $ac_c" 1>&6
+echo "configure:2767: checking for properly overriding new and delete" >&5
+U_OVERRIDE_CXX_ALLOCATION=0
+U_HAVE_PLACEMENT_NEW=0
+if eval "test \"`echo '$''{'ac_cv_override_cxx_allocation_ok'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2774 "configure"
+#include "confdefs.h"
+    #include <stdlib.h>
+    class UObject {
+    void *operator new(size_t size) {return malloc(size);}
+    void *operator new[](size_t size) {return malloc(size);}
+    void operator delete(void *p) {free(p);}
+    void operator delete[](void *p) {free(p);}
+    };
+    
+int main() {
+    
+; return 0; }
+EOF
+if { (eval echo configure:2788: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_override_cxx_allocation_ok=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_override_cxx_allocation_ok=no
+fi
+del -f conftest* 
+fi
+
+echo "$ac_t""$ac_cv_override_cxx_allocation_ok" 1>&6
+if test $ac_cv_override_cxx_allocation_ok = yes
+then
+    U_OVERRIDE_CXX_ALLOCATION=1
+    echo $ac_n "checking for placement new and delete""... $ac_c" 1>&6
+echo "configure:2805: checking for placement new and delete" >&5
+    if eval "test \"`echo '$''{'ac_cv_override_placement_new_ok'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2810 "configure"
+#include "confdefs.h"
+        #include <stdlib.h>
+        class UObject {
+        void *operator new(size_t size) {return malloc(size);}
+        void *operator new[](size_t size) {return malloc(size);}
+        void operator delete(void *p) {free(p);}
+        void operator delete[](void *p) {free(p);}
+        void * operator new(size_t, void *ptr) { return ptr; }
+        void operator delete(void *, void *) {}
+        };
+        
+int main() {
+        
+; return 0; }
+EOF
+if { (eval echo configure:2826: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_override_placement_new_ok=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_override_placement_new_ok=no
+fi
+del -f conftest* 
+fi
+
+    echo "$ac_t""$ac_cv_override_placement_new_ok" 1>&6
+    if test $ac_cv_override_placement_new_ok = yes
+    then
+        U_HAVE_PLACEMENT_NEW=1
+    fi
+fi
+
+
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo $ac_n "checking for popen""... $ac_c" 1>&6
+echo "configure:2855: checking for popen" >&5
+if eval "test \"`echo '$''{'ac_cv_func_popen'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2860 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char popen(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char popen();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_popen) || defined (__stub___popen)
+choke me
+#else
+popen();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2883: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_func_popen=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_func_popen=no"
+fi
+del -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'popen`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+if test x$ac_cv_func_popen = xyes
+then
+     U_HAVE_POPEN=1
+else
+     U_HAVE_POPEN=0
+fi
+
+
+echo $ac_n "checking for tzset""... $ac_c" 1>&6
+echo "configure:2911: checking for tzset" >&5
+if eval "test \"`echo '$''{'ac_cv_func_tzset'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2916 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char tzset(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char tzset();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_tzset) || defined (__stub___tzset)
+choke me
+#else
+tzset();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2939: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_func_tzset=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_func_tzset=no"
+fi
+del -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'tzset`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+if test x$ac_cv_func_tzset = xyes
+then
+    U_TZSET=tzset
+else
+    echo $ac_n "checking for _tzset""... $ac_c" 1>&6
+echo "configure:2963: checking for _tzset" >&5
+if eval "test \"`echo '$''{'ac_cv_func__tzset'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2968 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char _tzset(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char _tzset();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub__tzset) || defined (__stub____tzset)
+choke me
+#else
+_tzset();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2991: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_func__tzset=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_func__tzset=no"
+fi
+del -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'_tzset`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+    if test x$ac_cv_func__tzset = xyes
+    then
+	U_TZSET=_tzset
+    fi
+fi
+
+echo $ac_n "checking for tzname""... $ac_c" 1>&6
+echo "configure:3017: checking for tzname" >&5
+if eval "test \"`echo '$''{'ac_cv_var_tzname'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3022 "configure"
+#include "confdefs.h"
+#ifndef __USE_POSIX
+#define __USE_POSIX
+#endif
+#include <time.h>
+#ifndef tzname /* For SGI.  */
+extern char *tzname[]; /* RS6000 and others reject char **tzname.  */
+#endif
+int main() {
+atoi(*tzname);
+; return 0; }
+EOF
+if { (eval echo configure:3035: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_var_tzname=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_var_tzname=no
+fi
+del -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_var_tzname" 1>&6
+if test $ac_cv_var_tzname = yes; then
+  U_TZNAME=tzname
+else
+  echo $ac_n "checking for _tzname""... $ac_c" 1>&6
+echo "configure:3052: checking for _tzname" >&5
+if eval "test \"`echo '$''{'ac_cv_var__tzname'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3057 "configure"
+#include "confdefs.h"
+  #include <time.h>
+  extern char *_tzname[];
+  
+int main() {
+  atoi(*_tzname);
+; return 0; }
+EOF
+if { (eval echo configure:3066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_var__tzname=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_var__tzname=no
+fi
+del -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_var__tzname" 1>&6
+    if test $ac_cv_var__tzname = yes; then
+      U_TZNAME=_tzname
+    fi
+fi
+
+
+echo $ac_n "checking for timezone""... $ac_c" 1>&6
+echo "configure:3086: checking for timezone" >&5
+if eval "test \"`echo '$''{'ac_cv_var_timezone'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3091 "configure"
+#include "confdefs.h"
+#ifndef __USE_POSIX
+#define __USE_POSIX
+#endif
+#ifndef __USE_XOPEN
+#define __USE_XOPEN
+#endif
+#include <time.h>
+
+int main() {
+timezone = 1;
+; return 0; }
+EOF
+if { (eval echo configure:3105: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_var_timezone=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_var_timezone=no
+fi
+del -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_var_timezone" 1>&6
+U_HAVE_TIMEZONE=0
+if test $ac_cv_var_timezone = yes; then
+  U_TIMEZONE=timezone
+  U_HAVE_TIMEZONE=1
+else
+  echo $ac_n "checking for __timezone""... $ac_c" 1>&6
+echo "configure:3124: checking for __timezone" >&5
+if eval "test \"`echo '$''{'ac_cv_var___timezone'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3129 "configure"
+#include "confdefs.h"
+  #include <time.h>
+  
+int main() {
+  __timezone = 1;
+; return 0; }
+EOF
+if { (eval echo configure:3137: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_var___timezone=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_var___timezone=no
+fi
+del -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_var___timezone" 1>&6
+  if test $ac_cv_var___timezone = yes; then
+    U_TIMEZONE=__timezone
+    U_HAVE_TIMEZONE=1
+  else
+    echo $ac_n "checking for _timezone""... $ac_c" 1>&6
+echo "configure:3155: checking for _timezone" >&5
+if eval "test \"`echo '$''{'ac_cv_var__timezone'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3160 "configure"
+#include "confdefs.h"
+    #include <time.h>
+    
+int main() {
+    _timezone = 1;
+; return 0; }
+EOF
+if { (eval echo configure:3168: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_var__timezone=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_var__timezone=no
+fi
+del -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_var__timezone" 1>&6
+    if test $ac_cv_var__timezone = yes; then
+      U_TIMEZONE=_timezone
+      U_HAVE_TIMEZONE=1
+    fi
+  fi
+fi
+
+
+
+echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
+echo "configure:3191: checking for ANSI C header files" >&5
+if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3196 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:3204: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  del -f conftest*
+  ac_cv_header_stdc=yes
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_header_stdc=no
+fi
+del -f conftest*
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 3221 "configure"
+#include "confdefs.h"
+#include <string.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 &&
+  egrep "memchr" conftest.i >/dev/null 2>&1; then
+  :
+else
+  del -f conftest*
+  ac_cv_header_stdc=no
+fi
+del -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 3239 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 &&
+  egrep "free" conftest.i >/dev/null 2>&1; then
+  :
+else
+  del -f conftest*
+  ac_cv_header_stdc=no
+fi
+del -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+if test "$cross_compiling" = yes; then
+  :
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3260 "configure"
+#include "confdefs.h"
+#include <ctype.h>
+#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int main () { int i; for (i = 0; i < 256; i++)
+if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
+exit (0); }
+
+EOF
+if { (eval echo configure:3271: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; # && (./conftest; exit) 2>/dev/null
+then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_header_stdc=no
+fi
+del -f conftest*
+fi
+
+fi
+fi
+
+echo "$ac_t""$ac_cv_header_stdc" 1>&6
+if test $ac_cv_header_stdc = yes; then
+  cat >> confdefs.h <<\EOF
+#define STDC_HEADERS 1
+EOF
+
+fi
+
+echo $ac_n "checking for int8_t""... $ac_c" 1>&6
+echo "configure:3295: checking for int8_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_int8_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3300 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])int8_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  del -f conftest*
+  ac_cv_type_int8_t=yes
+else
+  del -f conftest*
+  ac_cv_type_int8_t=no
+fi
+del -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_int8_t" 1>&6
+if test $ac_cv_type_int8_t = no; then
+  cat >> confdefs.h <<\EOF
+#define int8_t signed char
+EOF
+
+fi
+
+echo $ac_n "checking for uint8_t""... $ac_c" 1>&6
+echo "configure:3328: checking for uint8_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_uint8_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3333 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])uint8_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  del -f conftest*
+  ac_cv_type_uint8_t=yes
+else
+  del -f conftest*
+  ac_cv_type_uint8_t=no
+fi
+del -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_uint8_t" 1>&6
+if test $ac_cv_type_uint8_t = no; then
+  cat >> confdefs.h <<\EOF
+#define uint8_t unsigned char
+EOF
+
+fi
+
+echo $ac_n "checking for int16_t""... $ac_c" 1>&6
+echo "configure:3361: checking for int16_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_int16_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3366 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])int16_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  del -f conftest*
+  ac_cv_type_int16_t=yes
+else
+  del -f conftest*
+  ac_cv_type_int16_t=no
+fi
+del -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_int16_t" 1>&6
+if test $ac_cv_type_int16_t = no; then
+  cat >> confdefs.h <<\EOF
+#define int16_t signed short
+EOF
+
+fi
+
+echo $ac_n "checking for uint16_t""... $ac_c" 1>&6
+echo "configure:3394: checking for uint16_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_uint16_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3399 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])uint16_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  del -f conftest*
+  ac_cv_type_uint16_t=yes
+else
+  del -f conftest*
+  ac_cv_type_uint16_t=no
+fi
+del -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_uint16_t" 1>&6
+if test $ac_cv_type_uint16_t = no; then
+  cat >> confdefs.h <<\EOF
+#define uint16_t unsigned short
+EOF
+
+fi
+
+echo $ac_n "checking for int32_t""... $ac_c" 1>&6
+echo "configure:3427: checking for int32_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_int32_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3432 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])int32_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  del -f conftest*
+  ac_cv_type_int32_t=yes
+else
+  del -f conftest*
+  ac_cv_type_int32_t=no
+fi
+del -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_int32_t" 1>&6
+if test $ac_cv_type_int32_t = no; then
+  cat >> confdefs.h <<\EOF
+#define int32_t signed long
+EOF
+
+fi
+
+echo $ac_n "checking for uint32_t""... $ac_c" 1>&6
+echo "configure:3460: checking for uint32_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_uint32_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3465 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])uint32_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  del -f conftest*
+  ac_cv_type_uint32_t=yes
+else
+  del -f conftest*
+  ac_cv_type_uint32_t=no
+fi
+del -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_uint32_t" 1>&6
+if test $ac_cv_type_uint32_t = no; then
+  cat >> confdefs.h <<\EOF
+#define uint32_t unsigned long
+EOF
+
+fi
+
+echo $ac_n "checking for int64_t""... $ac_c" 1>&6
+echo "configure:3493: checking for int64_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_int64_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3498 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])int64_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  del -f conftest*
+  ac_cv_type_int64_t=yes
+else
+  del -f conftest*
+  ac_cv_type_int64_t=no
+fi
+del -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_int64_t" 1>&6
+if test $ac_cv_type_int64_t = no; then
+  cat >> confdefs.h <<\EOF
+#define int64_t signed long long
+EOF
+
+fi
+
+echo $ac_n "checking for uint64_t""... $ac_c" 1>&6
+echo "configure:3526: checking for uint64_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_uint64_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3531 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])uint64_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  del -f conftest*
+  ac_cv_type_uint64_t=yes
+else
+  del -f conftest*
+  ac_cv_type_uint64_t=no
+fi
+del -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_uint64_t" 1>&6
+if test $ac_cv_type_uint64_t = no; then
+  cat >> confdefs.h <<\EOF
+#define uint64_t unsigned long long
+EOF
+
+fi
+
+
+if test $ac_cv_type_int8_t = no; then
+HAVE_INT8_T=0
+else
+HAVE_INT8_T=1
+fi
+
+
+if test $ac_cv_type_uint8_t = no; then
+HAVE_UINT8_T=0
+else
+HAVE_UINT8_T=1
+fi
+
+
+if test $ac_cv_type_int16_t = no; then
+HAVE_INT16_T=0
+else
+HAVE_INT16_T=1
+fi
+
+
+if test $ac_cv_type_uint16_t = no; then
+HAVE_UINT16_T=0
+else
+HAVE_UINT16_T=1
+fi
+
+
+if test $ac_cv_type_int32_t = no; then
+HAVE_INT32_T=0
+else
+HAVE_INT32_T=1
+fi
+
+
+if test $ac_cv_type_uint32_t = no; then
+HAVE_UINT32_T=0
+else
+HAVE_UINT32_T=1
+fi
+
+
+if test $ac_cv_type_int64_t = no; then
+HAVE_INT64_T=0
+else
+HAVE_INT64_T=1
+fi
+
+
+if test $ac_cv_type_uint64_t = no; then
+HAVE_UINT64_T=0
+else
+HAVE_UINT64_T=1
+fi
+
+
+ac_safe=`echo "wchar.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for wchar.h""... $ac_c" 1>&6
+echo "configure:3617: checking for wchar.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3622 "configure"
+#include "confdefs.h"
+#include <wchar.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:3627: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  del -f conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+del -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+if test "$ac_cv_header_wchar_h" = no
+then
+    U_HAVE_WCHAR_H=0
+    U_HAVE_WCSCPY=0
+else
+    cat >> confdefs.h <<\EOF
+#define HAVE_WCHAR_H 1
+EOF
+
+    U_HAVE_WCHAR_H=1
+        
+echo $ac_n "checking for library containing wcscpy""... $ac_c" 1>&6
+echo "configure:3660: checking for library containing wcscpy" >&5
+if eval "test \"`echo '$''{'ac_cv_search_wcscpy'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_func_search_save_LIBS="$LIBS"
+ac_cv_search_wcscpy="no"
+cat > conftest.$ac_ext <<EOF
+#line 3667 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char wcscpy();
+
+int main() {
+wcscpy()
+; return 0; }
+EOF
+if { (eval echo configure:3678: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_search_wcscpy="none required"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+del -f conftest*
+test "$ac_cv_search_wcscpy" = "no" && for i in wcs w; do
+LIBS="-l$i  $ac_func_search_save_LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 3689 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char wcscpy();
+
+int main() {
+wcscpy()
+; return 0; }
+EOF
+if { (eval echo configure:3700: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_search_wcscpy="-l$i"
+break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+del -f conftest*
+done
+LIBS="$ac_func_search_save_LIBS"
+fi
+
+echo "$ac_t""$ac_cv_search_wcscpy" 1>&6
+if test "$ac_cv_search_wcscpy" != "no"; then
+  test "$ac_cv_search_wcscpy" = "none required" || LIBS="$ac_cv_search_wcscpy $LIBS"
+  
+else :
+  
+fi
+    if test "$ac_cv_search_wcscpy" != no; then
+      U_HAVE_WCSCPY=1
+    else
+      U_HAVE_WCSCPY=0
+    fi
+fi
+
+
+
+ac_default_sizeof_wchar_t=4
+echo $ac_n "checking size of wchar_t""... $ac_c" 1>&6
+echo "configure:3731: checking size of wchar_t" >&5
+if eval "test \"`echo '$''{'ac_cv_sizeof_wchar_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_sizeof_wchar_t=$ac_default_sizeof_wchar_t
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3739 "configure"
+#include "confdefs.h"
+#if STDC_HEADERS
+#include <stddef.h>
+#endif
+#if HAVE_WCHAR_H
+#include <string.h>
+#include <wchar.h>
+#endif
+#include <stdio.h>
+main()
+{
+  FILE *f=fopen("conftestval", "w");
+  if (!f) exit(1);
+  fprintf(f, "%d\n", sizeof(wchar_t));
+  exit(0);
+}
+EOF
+if { (eval echo configure:3757: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ac_cv_sizeof_wchar_t=`cat conftestval`
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_sizeof_wchar_t=0
+fi
+del -f conftest*
+fi
+
+fi
+echo "$ac_t""$ac_cv_sizeof_wchar_t" 1>&6
+cat >> confdefs.h <<EOF
+#define SIZEOF_WCHAR_T $ac_cv_sizeof_wchar_t
+EOF
+
+
+U_SIZEOF_WCHAR_T=$ac_cv_sizeof_wchar_t
+if test $U_SIZEOF_WCHAR_T = 0; then
+	if test $U_HAVE_WCHAR_H=1; then
+	   { echo "configure: error: There is wchar.h but the size of wchar_t is 0" 1>&2; exit 1; }
+	fi
+fi
+
+
+#dnl Echo
+#ECHO_N=$ac_n
+#ECHO_C=$ac_c
+#AC_SUBST(ECHO_N)
+#AC_SUBST(ECHO_C)
+
+# Check whether --enable-extras or --disable-extras was given.
+if test "${enable_extras+set}" = set; then
+  enableval="$enable_extras"
+  case "${enableval}" in
+		yes) extras=true ;;
+		no)  extras=false ;;
+		*) { echo "configure: error: bad value ${enableval} for --enable-extras" 1>&2; exit 1; } ;;
+		esac
+else
+  extras=true
+fi
+
+
+if test "$extras" = true; then
+  EXTRAS_TRUE=
+else
+  EXTRAS_TRUE='#'
+fi
+# Check whether --enable-extras or --disable-extras was given.
+if test "${enable_extras+set}" = set; then
+  enableval="$enable_extras"
+  case "${enableval}" in
+		yes) icuio=true ;;
+		no)  icuio=false ;;
+		*) { echo "configure: error: bad value ${enableval} for --enable-icuio" 1>&2; exit 1; } ;;
+		esac
+else
+  icuio=true
+fi
+
+
+if test "$icuio" = true; then
+  ICUIO_TRUE=
+else
+  ICUIO_TRUE='#'
+fi
+
+# Check whether --enable-layout or --disable-layout was given.
+if test "${enable_layout+set}" = set; then
+  enableval="$enable_layout"
+  case "${enableval}" in
+		yes) layout=true ;;
+		no)  layout=false ;;
+		*) { echo "configure: error: bad value ${enableval} for --enable-layout" 1>&2; exit 1; } ;;
+		esac
+else
+  layout=true
+fi
+
+
+if test "$layout" = true; then
+  LAYOUT_TRUE=
+else
+  LAYOUT_TRUE='#'
+fi
+
+# Check whether --with-data-packaging or --without-data-packaging was given.
+if test "${with_data_packaging+set}" = set; then
+  withval="$with_data_packaging"
+  case "${withval}" in
+                files|archive|library) datapackaging=$withval ;;
+		auto) datapackaging=$withval ;;
+		common) datapackaging=archive ;;
+		dll) datapackaging=library ;;
+		static) datapackaging=static ;;
+		*) { echo "configure: error: bad value ${withval} for --with-data-packaging" 1>&2; exit 1; } ;;
+		esac
+else
+  datapackaging=
+fi
+
+
+thesysconfdir=`eval echo $sysconfdir`
+
+thedatadir=`eval echo $datadir`
+
+thelibdir=`test "x$exec_prefix" = xNONE && exec_prefix="$prefix"; eval echo $libdir`
+
+pkgicudatadir=$datadir
+thepkgicudatadir=$thedatadir
+
+
+
+
+# Check whether --enable-mapped or --disable-mapped was given.
+if test "${enable_mapped+set}" = set; then
+  enableval="$enable_mapped"
+  case "${enableval}" in
+               yes) mapped=archive ;;
+               no)  mapped=library ;;
+               *) { echo "configure: error: bad value ${enableval} for --enable-mapped; use --with-data-packaging now" 1>&2; exit 1; } ;;
+	esac
+else
+  mapped=
+fi
+
+
+if test x"$mapped" != x; then
+    case $mapped in
+	archive)
+    	    echo "configure: warning: use --with-data-packaging=archive instead of --enable-mapped" 1>&2
+	    ;;
+	library)
+    	    echo "configure: warning: use --with-data-packaging=library instead of --disable-mapped" 1>&2
+	    ;;
+    esac
+    if test x"$datapackaging" != x -a x"$mapped" != x"$datapackaging"; then
+	{ echo "configure: error: conflicting values used for --with-data-packaging and deprecated --enable-mapped" 1>&2; exit 1; }
+    fi
+    datapackaging=$mapped
+fi
+
+if test x"$datapackaging" = x -o x"$datapackaging" = xauto; then
+	datapackaging=library
+fi
+
+case "$datapackaging" in
+    files)
+	DATA_PACKAGING_CPPFLAGS=-DUDATA_FILES
+	DATA_PACKAGING_MODE=files
+	;;
+    archive)
+	DATA_PACKAGING_CPPFLAGS=-DUDATA_MAP
+	DATA_PACKAGING_MODE=common
+	;;
+    library)
+	DATA_PACKAGING_CPPFLAGS=-DUDATA_DLL
+	DATA_PACKAGING_MODE=dll
+	;;
+esac
+
+
+
+echo $ac_n "checking for a library suffix to use""... $ac_c" 1>&6
+echo "configure:3924: checking for a library suffix to use" >&5
+# Check whether --with-library-suffix or --without-library-suffix was given.
+if test "${with_library_suffix+set}" = set; then
+  withval="$with_library_suffix"
+  ICULIBSUFFIX="${withval}"
+else
+  ICULIBSUFFIX=
+fi
+
+msg=$ICULIBSUFFIX
+if test "$msg" = ""; then
+    msg=none
+fi
+echo "$ac_t""$msg" 1>&6
+
+if test "$ICULIBSUFFIX" != ""
+then
+    U_HAVE_LIB_SUFFIX=1
+    ICULIBSUFFIXCNAME=`echo _$ICULIBSUFFIX | sed 's/[^A-Za-z0-9_]/_/g'`
+else
+    U_HAVE_LIB_SUFFIX=0
+fi
+
+
+
+# Check whether --enable-tests or --disable-tests was given.
+if test "${enable_tests+set}" = set; then
+  enableval="$enable_tests"
+  case "${enableval}" in
+		yes) tests=true ;;
+		no)  tests=false ;;
+		*) { echo "configure: error: bad value ${enableval} for --enable-tests" 1>&2; exit 1; } ;;
+		esac
+else
+  tests=true
+fi
+
+
+if test "$tests" = true; then
+  TESTS_TRUE=
+else
+  TESTS_TRUE='#'
+fi
+
+# Check whether --enable-samples or --disable-samples was given.
+if test "${enable_samples+set}" = set; then
+  enableval="$enable_samples"
+  case "${enableval}" in
+		yes) samples=true ;;
+		no)  samples=false ;;
+		*) { echo "configure: error: bad value ${enableval} for --enable-samples" 1>&2; exit 1; } ;;
+		esac
+else
+  samples=true
+fi
+
+
+if test "$samples" = true; then
+  SAMPLES_TRUE=
+else
+  SAMPLES_TRUE='#'
+fi
+
+ICUDATA_CHAR=$U_ENDIAN_CHAR
+
+case "${host}" in
+	*-*-solaris*) 	platform=U_SOLARIS ;;
+	*-*-linux*) 	platform=U_LINUX ;;
+	*-*-*bsd*) 	platform=U_BSD ;;
+	*-*-aix*) 	platform=U_AIX ;;
+	*-*-hpux*) 	platform=U_HPUX ;;
+	*-apple-darwin*|*-apple-rhapsody*)	platform=U_DARWIN ;;
+	*-*-cygwin*|*-*-mingw*)	platform=U_CYGWIN ;;
+	*-*ibm-openedition*|*-*-os390*)	platform=OS390
+			ICUDATA_CHAR="e" ;;
+	*-*-os400*)	platform=OS400
+			ICUDATA_CHAR="e" ;;
+	*-*-nto*)	platform=U_QNX ;;
+	*-dec-osf*) 	platform=U_OSF ;;
+	*-*-beos)		platform=U_BEOS ;;
+	*-*-irix*)		platform=U_IRIX ;;
+	*-ncr-*)		platform=U_MPRAS ;;
+	*-sequent-*)	platform=PTX ;;
+	*) 		platform=U_UNKNOWN_PLATFORM ;;
+esac
+
+
+platform_make_fragment_name="$icu_cv_host_frag"
+platform_make_fragment='$(top_srcdir)/config/'"$platform_make_fragment_name"
+
+
+
+case "${host}" in
+	*-*-solaris*) 	ld_rpath_suf=":" ;;
+	*-*-linux*) 	ld_rpath_suf=" " ;;
+	*-*-*bsd*) 	ld_rpath_suf=" " ;;
+	*-*-aix*) 	ld_rpath_suf="" ;;
+	*-*-hpux*) 	ld_rpath_suf=":" ;;
+	*-*ibm-openedition*|*-*-os390*)	ld_rpath_suf="" ;;
+	*-*-os400*)	ld_rpath_suf=" " ;;
+	*-sequent-*)	ld_rpath_suf="" ;;
+	*-*-irix*)      ld_rpath_suf=" " ;;
+	*) 		ld_rpath_suf="" ;;
+esac
+
+
+case "${host}" in
+	*-*-hpux*) 	
+		if test "${icu_cv_host_frag}" = "mh-hpux-cc"; then
+			for file in samples/date/date \
+			  samples/cal/cal test/cintltst/cintltst \
+			  tools/makeconv/makeconv tools/genrb/genrb \
+			  tools/genrb/derb tools/genccode/genccode \
+			  tools/gencmn/gencmn tools/gencmn/decmn \
+			  tools/gencnval/gencnval tools/gennorm/gennorm \
+			  tools/gennames/gennames tools/gentest/gentest \
+			  tools/pkgdata/pkgdata tools/genprops/genprops \
+			  tools/gensprep/gensprep
+			do
+			  if test -f $file.c; then
+			    mv $file.c $file.cpp
+			  else
+			    echo "# $file.c does not exist or is already renamed [warning]"
+			  fi
+			done
+		fi
+	;;
+esac
+
+if test "${FORCE_LIBS}" != ""; then
+   echo " *** Overriding automatically chosen LIBS=$LIBS, using instead FORCE_LIBS=${FORCE_LIBS}"  1>&6
+   LIBS=${FORCE_LIBS}
+fi
+
+
+if test "${AIX_SHLIB}" != ""; then
+   echo " *** setting AIX_SHLIB (AIX only) to ${AIX_SHLIB}]"  1>&6
+else
+   AIX_SHLIB=makeC++SharedLib_r
+fi
+
+
+
+
+
+if test $ICU_USE_THREADS -ne 0
+then
+    CPPFLAGS="$CPPFLAGS \$(THREADSCPPFLAGS)"
+    CFLAGS="$CFLAGS \$(THREADSCFLAGS)"
+    CXXFLAGS="$CXXFLAGS \$(THREADSCXXFLAGS)"
+fi
+
+trap '' 1 2 15
+cat > confcache <<\EOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs.  It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already.  You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(set) 2>&1 |
+  case `(ac_space=' '; set | grep ac_space) 2>&1` in
+  *ac_space=\ *)
+    # `set' does not quote correctly, so add quotes (double-quote substitution
+    # turns \\\\ into \\, and sed turns \\ into \).
+    sed -n \
+      -e "s/'/'\\\\''/g" \
+      -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+    ;;
+  *)
+    # `set' quotes correctly as required by POSIX, so do not add quotes.
+    sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+    ;;
+  esac >> confcache
+if cmp -s $cache_file confcache; then
+  :
+else
+  if test -w $cache_file; then
+    echo "updating cache $cache_file"
+    cat confcache > $cache_file
+  else
+    echo "not updating unwritable cache $cache_file"
+  fi
+fi
+del -f confcache
+
+trap 'del -f conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[ 	]*VPATH[ 	]*=[^:]*$/d'
+fi
+
+trap 'del -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+DEFS=-DHAVE_CONFIG_H
+
+# Without the "./", some shells look in PATH for config.status.
+: ${CONFIG_STATUS=./config.status}
+
+echo creating $CONFIG_STATUS
+del -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#! /usr/bin/qsh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
+do
+  case "\$ac_option" in
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    echo "running \${CONFIG_SHELL-/usr/bin/qsh} $0 $ac_configure_args --no-create --no-recursion"
+    exec \${CONFIG_SHELL-/usr/bin/qsh} $0 $ac_configure_args --no-create --no-recursion ;;
+  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+    echo "$CONFIG_STATUS generated by autoconf version 2.13"
+    exit 0 ;;
+  -help | --help | --hel | --he | --h)
+    echo "\$ac_cs_usage"; exit 0 ;;
+  *) echo "\$ac_cs_usage"; exit 1 ;;
+  esac
+done
+
+ac_given_srcdir=$srcdir
+ac_given_INSTALL="$INSTALL"
+
+trap 'del -f `echo "icudefs.mk \
+		Makefile \
+		data/Makefile data/icupkg.inc \
+		common/Makefile config/Makefile.inc i18n/Makefile \
+		layout/Makefile \
+		layoutex/Makefile \
+		io/Makefile \
+		extra/Makefile \
+		extra/uconv/Makefile extra/scrptrun/Makefile
+		stubdata/Makefile \
+		tools/Makefile tools/ctestfw/Makefile tools/makeconv/Makefile \
+		tools/genrb/Makefile \
+		tools/genuca/Makefile \
+		tools/genccode/Makefile \
+		tools/gencmn/Makefile \
+		tools/gencnval/Makefile \
+		tools/gennames/Makefile \
+		tools/gentest/Makefile \
+		tools/gennorm/Makefile \
+		tools/genprops/Makefile \
+		tools/genpname/Makefile \
+		tools/genbrk/Makefile \
+		tools/gensprep/Makefile \
+		tools/icuswap/Makefile \
+		tools/pkgdata/Makefile \
+		tools/toolutil/Makefile \
+		tools/dumpce/Makefile \
+		test/Makefile test/testdata/Makefile \
+		test/intltest/Makefile \
+		test/cintltst/Makefile \
+		test/iotest/Makefile \
+		test/thaitest/Makefile \
+		test/testmap/Makefile \
+		test/letest/Makefile \
+		test/threadtest/Makefile \
+		samples/Makefile samples/date/Makefile \
+		samples/cal/Makefile samples/layout/Makefile \
+		common/unicode/platform.h common/icucfg.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+# Protect against being on the right side of a sed subst in config.status.
+sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+$ac_vpsub
+$extrasub
+s%@SHELL@%$SHELL%g
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@FFLAGS@%$FFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@program_transform_name@%$program_transform_name%g
+s%@bindir@%$bindir%g
+s%@sbindir@%$sbindir%g
+s%@libexecdir@%$libexecdir%g
+s%@datadir@%$datadir%g
+s%@sysconfdir@%$sysconfdir%g
+s%@sharedstatedir@%$sharedstatedir%g
+s%@localstatedir@%$localstatedir%g
+s%@libdir@%$libdir%g
+s%@includedir@%$includedir%g
+s%@oldincludedir@%$oldincludedir%g
+s%@infodir@%$infodir%g
+s%@mandir@%$mandir%g
+s%@PACKAGE@%$PACKAGE%g
+s%@VERSION@%$VERSION%g
+s%@LIB_VERSION@%$LIB_VERSION%g
+s%@LIB_VERSION_MAJOR@%$LIB_VERSION_MAJOR%g
+s%@UNICODE_VERSION@%$UNICODE_VERSION%g
+s%@CC@%$CC%g
+s%@CXX@%$CXX%g
+s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
+s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@STRIP@%$STRIP%g
+s%@U_MAKE@%$U_MAKE%g
+s%@DOXYGEN@%$DOXYGEN%g
+s%@host@%$host%g
+s%@host_alias@%$host_alias%g
+s%@host_cpu@%$host_cpu%g
+s%@host_vendor@%$host_vendor%g
+s%@host_os@%$host_os%g
+s%@EXEEXT@%$EXEEXT%g
+s%@ARFLAGS@%$ARFLAGS%g
+s%@COMPILE_LINK_ENVVAR@%$COMPILE_LINK_ENVVAR%g
+s%@LIB_M@%$LIB_M%g
+s%@ENABLE_SHARED@%$ENABLE_SHARED%g
+s%@ENABLE_STATIC@%$ENABLE_STATIC%g
+s%@ENABLE_DEBUG@%$ENABLE_DEBUG%g
+s%@ENABLE_RELEASE@%$ENABLE_RELEASE%g
+s%@RANLIB@%$RANLIB%g
+s%@AR@%$AR%g
+s%@U_DISABLE_RENAMING@%$U_DISABLE_RENAMING%g
+s%@U_ENABLE_TRACING@%$U_ENABLE_TRACING%g
+s%@ENABLE_RPATH@%$ENABLE_RPATH%g
+s%@U_INLINE@%$U_INLINE%g
+s%@THREADS_TRUE@%$THREADS_TRUE%g
+s%@ICU_USE_THREADS@%$ICU_USE_THREADS%g
+s%@HAVE_MMAP@%$HAVE_MMAP%g
+s%@GENCCODE_ASSEMBLY@%$GENCCODE_ASSEMBLY%g
+s%@CPP@%$CPP%g
+s%@U_HAVE_INTTYPES_H@%$U_HAVE_INTTYPES_H%g
+s%@CXXCPP@%$CXXCPP%g
+s%@U_IOSTREAM_SOURCE@%$U_IOSTREAM_SOURCE%g
+s%@U_IS_BIG_ENDIAN@%$U_IS_BIG_ENDIAN%g
+s%@U_HAVE_NL_LANGINFO@%$U_HAVE_NL_LANGINFO%g
+s%@U_HAVE_NL_LANGINFO_CODESET@%$U_HAVE_NL_LANGINFO_CODESET%g
+s%@U_NL_LANGINFO_CODESET@%$U_NL_LANGINFO_CODESET%g
+s%@U_HAVE_NAMESPACE@%$U_HAVE_NAMESPACE%g
+s%@U_OVERRIDE_CXX_ALLOCATION@%$U_OVERRIDE_CXX_ALLOCATION%g
+s%@U_HAVE_PLACEMENT_NEW@%$U_HAVE_PLACEMENT_NEW%g
+s%@U_HAVE_POPEN@%$U_HAVE_POPEN%g
+s%@U_TZSET@%$U_TZSET%g
+s%@U_TZNAME@%$U_TZNAME%g
+s%@U_HAVE_TIMEZONE@%$U_HAVE_TIMEZONE%g
+s%@U_TIMEZONE@%$U_TIMEZONE%g
+s%@HAVE_INT8_T@%$HAVE_INT8_T%g
+s%@HAVE_UINT8_T@%$HAVE_UINT8_T%g
+s%@HAVE_INT16_T@%$HAVE_INT16_T%g
+s%@HAVE_UINT16_T@%$HAVE_UINT16_T%g
+s%@HAVE_INT32_T@%$HAVE_INT32_T%g
+s%@HAVE_UINT32_T@%$HAVE_UINT32_T%g
+s%@HAVE_INT64_T@%$HAVE_INT64_T%g
+s%@HAVE_UINT64_T@%$HAVE_UINT64_T%g
+s%@U_HAVE_WCHAR_H@%$U_HAVE_WCHAR_H%g
+s%@U_HAVE_WCSCPY@%$U_HAVE_WCSCPY%g
+s%@U_SIZEOF_WCHAR_T@%$U_SIZEOF_WCHAR_T%g
+s%@EXTRAS_TRUE@%$EXTRAS_TRUE%g
+s%@ICUIO_TRUE@%$ICUIO_TRUE%g
+s%@LAYOUT_TRUE@%$LAYOUT_TRUE%g
+s%@thesysconfdir@%$thesysconfdir%g
+s%@thedatadir@%$thedatadir%g
+s%@thelibdir@%$thelibdir%g
+s%@pkgicudatadir@%$pkgicudatadir%g
+s%@thepkgicudatadir@%$thepkgicudatadir%g
+s%@DATA_PACKAGING_CPPFLAGS@%$DATA_PACKAGING_CPPFLAGS%g
+s%@DATA_PACKAGING_MODE@%$DATA_PACKAGING_MODE%g
+s%@ICULIBSUFFIX@%$ICULIBSUFFIX%g
+s%@U_HAVE_LIB_SUFFIX@%$U_HAVE_LIB_SUFFIX%g
+s%@ICULIBSUFFIXCNAME@%$ICULIBSUFFIXCNAME%g
+s%@TESTS_TRUE@%$TESTS_TRUE%g
+s%@SAMPLES_TRUE@%$SAMPLES_TRUE%g
+s%@ICUDATA_CHAR@%$ICUDATA_CHAR%g
+s%@platform@%$platform%g
+s%@platform_make_fragment_name@%$platform_make_fragment_name%g
+s%@platform_make_fragment@%$platform_make_fragment%g
+s%@ld_rpath_suf@%$ld_rpath_suf%g
+s%@AIX_SHLIB@%$AIX_SHLIB%g
+
+CEOF
+EOF
+
+cat >> $CONFIG_STATUS <<\EOF
+
+# Split the substitutions into bite-sized pieces for seds with
+# small command number limits, like on Digital OSF/1 and HP-UX.
+ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ac_file=1 # Number of current file.
+ac_beg=1 # First line for current file.
+ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ac_more_lines=:
+ac_sed_cmds=""
+while $ac_more_lines; do
+  if test $ac_beg -gt 1; then
+    sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+  else
+    sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+  fi
+  if test ! -s conftest.s$ac_file; then
+    ac_more_lines=false
+    del -f conftest.s$ac_file
+  else
+    if test -z "$ac_sed_cmds"; then
+      ac_sed_cmds="sed -f conftest.s$ac_file"
+    else
+      ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+    fi
+    ac_file=`expr $ac_file + 1`
+    ac_beg=$ac_end
+    ac_end=`expr $ac_end + $ac_max_sed_cmds`
+  fi
+done
+if test -z "$ac_sed_cmds"; then
+  ac_sed_cmds=cat
+fi
+EOF
+
+cat >> $CONFIG_STATUS <<EOF
+
+CONFIG_FILES=\${CONFIG_FILES-"icudefs.mk \
+		Makefile \
+		data/Makefile data/icupkg.inc \
+		common/Makefile config/Makefile.inc i18n/Makefile \
+		layout/Makefile \
+		layoutex/Makefile \
+		io/Makefile \
+		extra/Makefile \
+		extra/uconv/Makefile extra/scrptrun/Makefile
+		stubdata/Makefile \
+		tools/Makefile tools/ctestfw/Makefile tools/makeconv/Makefile \
+		tools/genrb/Makefile \
+		tools/genuca/Makefile \
+		tools/genccode/Makefile \
+		tools/gencmn/Makefile \
+		tools/gencnval/Makefile \
+		tools/gennames/Makefile \
+		tools/gentest/Makefile \
+		tools/gennorm/Makefile \
+		tools/genprops/Makefile \
+		tools/genpname/Makefile \
+		tools/genbrk/Makefile \
+		tools/gensprep/Makefile \
+		tools/icuswap/Makefile \
+		tools/pkgdata/Makefile \
+		tools/toolutil/Makefile \
+		tools/dumpce/Makefile \
+		test/Makefile test/testdata/Makefile \
+		test/intltest/Makefile \
+		test/cintltst/Makefile \
+		test/iotest/Makefile \
+		test/thaitest/Makefile \
+		test/testmap/Makefile \
+		test/letest/Makefile \
+		test/threadtest/Makefile \
+		samples/Makefile samples/date/Makefile \
+		samples/cal/Makefile samples/layout/Makefile \
+		common/unicode/platform.h"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
+  esac
+
+  # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+  # Remove last slash and all that follows it.  Not all systems have dirname.
+  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+    # The file is in a subdirectory.
+    test ! -d "$ac_dir" && mkdir "$ac_dir"
+    ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+    # A "../" for each directory in $ac_dir_suffix.
+    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+  else
+    ac_dir_suffix= ac_dots=
+  fi
+
+  case "$ac_given_srcdir" in
+  .)  srcdir=.
+      if test -z "$ac_dots"; then top_srcdir=.
+      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+  *) # Relative path.
+    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+    top_srcdir="$ac_dots$ac_given_srcdir" ;;
+  esac
+
+  case "$ac_given_INSTALL" in
+  [/$]*) INSTALL="$ac_given_INSTALL" ;;
+  *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+  esac
+
+  echo creating "$ac_file"
+  del -f "$ac_file"
+  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+  case "$ac_file" in
+  *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+  *) ac_comsub= ;;
+  esac
+
+  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+  sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+s%@INSTALL@%$INSTALL%g
+" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+fi; done
+del -f conftest.s*
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s%^\([ 	]*\)#\([ 	]*define[ 	][ 	]*\)'
+ac_dB='\([ 	][ 	]*\)[^ 	]*%\1#\2'
+ac_dC='\3'
+ac_dD='%g'
+# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
+ac_uA='s%^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
+ac_uB='\([ 	]\)%\1#\2define\3'
+ac_uC=' '
+ac_uD='\4%g'
+# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_eA='s%^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
+ac_eB='$%\1#\2define\3'
+ac_eC=' '
+ac_eD='%g'
+
+if test "${CONFIG_HEADERS+set}" != set; then
+EOF
+cat >> $CONFIG_STATUS <<EOF
+  CONFIG_HEADERS="common/icucfg.h"
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+fi
+for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
+  esac
+
+  echo creating $ac_file
+
+  del -f conftest.frag conftest.in conftest.out
+  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+  cat $ac_file_inputs > conftest.in
+
+EOF
+
+# Transform confdefs.h into a sed script conftest.vals that substitutes
+# the proper values into config.h.in to produce config.h.  And first:
+# Protect against being on the right side of a sed subst in config.status.
+# Protect against being in an unquoted here document in config.status.
+del -f conftest.vals
+cat > conftest.hdr <<\EOF
+s/[\\&%]/\\&/g
+s%[\\$`]%\\&%g
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
+s%ac_d%ac_u%gp
+s%ac_u%ac_e%gp
+EOF
+sed -n -f conftest.hdr confdefs.h > conftest.vals
+del -f conftest.hdr
+
+# This sed command replaces #undef with comments.  This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+cat >> conftest.vals <<\EOF
+s%^[ 	]*#[ 	]*undef[ 	][ 	]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
+EOF
+
+# Break up conftest.vals because some shells have a limit on
+# the size of here documents, and old seds have small limits too.
+
+del -f conftest.tail
+while :
+do
+  ac_lines=`grep -c . conftest.vals`
+  # grep -c gives empty output for an empty file on some AIX systems.
+  if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
+  # Write a limited-size here document to conftest.frag.
+  echo '  cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
+  echo 'CEOF
+  sed -f conftest.frag conftest.in > conftest.out
+  del -f conftest.in
+  mv conftest.out conftest.in
+' >> $CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
+  del -f conftest.vals
+  mv conftest.tail conftest.vals
+done
+del -f conftest.vals
+
+cat >> $CONFIG_STATUS <<\EOF
+  del -f conftest.frag conftest.h
+  echo "/* $ac_file.  Generated automatically by configure.  */" > conftest.h
+  cat conftest.in >> conftest.h
+  del -f conftest.in
+  if cmp -s $ac_file conftest.h 2>/dev/null; then
+    echo "$ac_file is unchanged"
+    del -f conftest.h
+  else
+    # Remove last slash and all that follows it.  Not all systems have dirname.
+      ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+      if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+      # The file is in a subdirectory.
+      test ! -d "$ac_dir" && mkdir "$ac_dir"
+    fi
+    del -f $ac_file
+    mv conftest.h $ac_file
+  fi
+fi; done
+
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+
+exit 0
+EOF
+chmod +x $CONFIG_STATUS
+del -f confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/usr/bin/qsh} $CONFIG_STATUS || exit 1
+
+
+if test $ICU_USE_THREADS = 0; then
+  echo  " *** Note: configuring the ICU without pthread support or testing. If this isn't what you want, then run configure with --enable-threads=yes or check the messages above to see why we couldn't find pthread_create()" 1>&6
+fi
+
+echo "You must use $U_MAKE to build ICU."
diff --git a/as_is/os400/unpax-icu.sh b/as_is/os400/unpax-icu.sh
new file mode 100755
index 0000000..691ddba
--- /dev/null
+++ b/as_is/os400/unpax-icu.sh
@@ -0,0 +1,139 @@
+#!/usr/bin/qsh
+#   Copyright (C) 2000-2003, International Business Machines
+#   Corporation and others.  All Rights Reserved.
+#
+# Authors:
+# Ami Fixler
+# Barry Novinger
+# Steven R. Loomis <srl@jtcsv.com>
+# 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'
+data_files='icu/source/data/brkitr/* icu/source/data/locales/* icu/source/data/coll/* icu/source/data/mappings/* icu/source/data/misc/* icu/source/data/translit/* icu/source/data/unidata/* icu/source/test/testdata/*'
+
+usage()
+{
+  echo "Enter archive filename as a parameter: $0 icu-archive.tar [strip]"
+  echo "(strip is an option to remove hex '0D' carraige returns)"
+}
+# first make sure we at least one arg and it's a file we can read
+if [ $# -eq 0 ]; then
+  usage
+  exit
+fi
+if [ ! -r $1 ]; then
+  echo "$1 does not exist or cannot be read."
+  usage
+  exit
+fi
+# set up a few variables
+
+echo ""
+echo "Extracting from $1 ..."
+echo ""
+# extract everything as iso-8859-1 except these directories
+pax -C 819 -rcvf $1 $data_files
+
+# extract files while converting them to EBCDIC
+echo ""
+echo "Extracting files which must be in ibm-37 ..."
+echo ""
+pax -C 37 -rvf $1 $data_files
+
+if [ $# -gt 1 ]; then 
+  if [ $2 -eq strip ]; then
+    echo ""
+    echo "Stripping hex 0d characters ..."
+    for i in $(pax -f $1 2>/dev/null)
+    do
+      case $i in
+        */)
+         # then this entry is a directory
+         ;;
+        *)
+          # then this entry is NOT a directory
+          tr -d 
+ <$i >@@@icu@tmp
+          chmod +w $i
+          rm $i
+          mv @@@icu@tmp $i
+          ;;
+       esac
+    done
+  fi
+fi
+
+echo ""
+echo "Determining binary files ..."
+echo ""
+
+#for dir in `find ./icu -type d \( -name CVS -o -print \)`; do
+#    if [ -f $dir/CVS/Entries ]; then
+#        binary_files="$binary_files`cat $dir/CVS/Entries | fgrep -- -kb \
+#                      | cut -d / -f2 | sed -e "s%^%$dir/%" \
+#                      | sed -e "s%^\./%%" | tr '\n' ' '`"
+#    fi
+#done
+#echo "Detecting Unicode files"
+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'`;
+#    echo "bom8 is" $bom8 "for" $file
+#    bom8=`head -c 3 $file|od -t x1|head -n 1|cut -d ' ' -f2-4`;
+    #Find a converted UTF-8 BOM
+    if [ "$bom8" = "057 08b 0ab" -o "$bom8" = "57 8b ab" ]
+    then
+        binary_files="$binary_files `echo $file | cut -d / -f2-`";
+    fi
+done
+
+#echo $binary_files
+
+for i in $(pax -f $1 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
+         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 -C 819 -rvf $1 $binary_files
+fi
+echo ""
+echo "$0 has completed extracting ICU from $1."
diff --git a/debian/.cvsignore b/debian/.cvsignore
new file mode 100644
index 0000000..2fe3e9b
--- /dev/null
+++ b/debian/.cvsignore
@@ -0,0 +1,17 @@
+*.debhelper
+docs
+*files
+*.substvars
+libicu-dev
+*libicu[0-9]*
+icu
+icu-locales
+icu-data
+icu-i18ndata
+tmp
+control
+postinst
+prerm
+icu.postinst
+icu.prerm
+icu-doc
diff --git a/debian/README.Debian.libicu-dev b/debian/README.Debian.libicu-dev
new file mode 100644
index 0000000..32a2fec
--- /dev/null
+++ b/debian/README.Debian.libicu-dev
@@ -0,0 +1,11 @@
+Copyright (C) 2000-2003, International Business Machines
+Corporation and others.  All Rights Reserved.
+
+libicu-dev for Debian
+---------------------
+
+The documentation in /usr/share/doc/libicu-dev/docs/ provides a high-level
+overview of ICU. Detailed API documentation is provided by the icu-docs
+package.
+
+ -- Yves Arrouye <yves@debian.org>, Wed, 11 Oct 2000 19:37:57 -0700
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..379ee4b
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,155 @@
+icu (2.6.1-1) experimental; urgency=low
+
+  * New upstream version.
+  * Ivo Timmermans:
+      * debian/rules Don't create arch-all packages in the binary-arch
+        target.  Closes: #184403
+
+ -- Ivo Timmermans <ivo@debian.org>  Thu,  6 Nov 2003 09:03:44 +0100
+
+icu (2.6-1) experimental; urgency=low
+
+  * New upstream version. Closes: #162975
+  * debian/control: New maintainers
+  * Daniel Glassey:
+      * debian/rules Change the optimisations to -O3 and -O to get it to build
+      * debian/rules get the latest config.{sub,guess} from /usr/share/misc
+        so add build-dep on autotools-dev
+      * debian/postinst gencnval is now in {prefix}/bin
+  * Ivo Timmermans:
+      * debian/control Tightened debhelper build dependency
+      * debian/control Update Standards-Version
+
+ -- Daniel Glassey <wdg@debian.org>  Wed,  3 Sep 2003 12:39:35 +0200
+
+icu (2.1-1.2) unstable; urgency=low
+
+  * NMU.
+  * Updated source/config.{sub,guess}.  Closes: #182697
+
+ -- Ivo Timmermans <ivo@debian.org>  Fri,  7 Mar 2003 20:58:23 +0100
+
+icu (2.1-1.1) unstable; urgency=low
+
+  * NMU.
+  * debian/control: Go through G++ ABI transition. Closes: #180124
+  * source/common/unicode/docmain.h: Fix \mainpage and \section tags,
+    so doxygen doesn't get confused any more. Closes: #178344
+  * debian/copyright: Added upstream URL. Closes: #165780
+  * 
+
+ -- Ivo Timmermans <ivo@debian.org>  Fri, 14 Feb 2003 15:21:56 +0100
+
+icu (2.1-1) unstable; urgency=low
+
+  * ICU 2.1 release.
+  * Changed the icu package description. Closes: 142886
+  * Use -O1 for CXXFLAGS for OS/390. Closes: 143021
+
+ -- Yves Arrouye <yves@debian.org>  Mon, 15 Apr 2002 14:03:12 -0700
+
+icu (2.0.2-1) unstable; urgency=low
+
+  * Minor release of ICU with fixes for threading and strTo/FromWCS
+
+ -- Yves Arrouye <yves@debian.org>  Tue,  2 Apr 2002 09:06:00 -0800
+
+icu (2.0-2.1pre20020318-1) unstable; urgency=low
+
+  * Use the library number in the development package too.
+  * ICU changed to version 2.1.
+
+ -- Yves Arrouye <yves@debian.org>  Tue, 19 Mar 2002 18:38:37 -0800
+
+icu (2.0-2.1pre20020303-1) unstable; urgency=low
+
+  * Fixed a crash in uconv when no argument is passed to -f or -t.
+  * Other upstream changes.
+  * Fresh upload with an up to date orig tar file so that future
+    diffs won't be 6 megabytes long!
+
+ -- Yves Arrouye <yves@debian.org>  Sun,  3 Mar 2002 15:31:13 -0800
+
+icu (2.0-2.1pre-1) unstable; urgency=low
+
+  * Prerelease of 2.1 with a working upgraded uconv(1).
+
+ -- Yves Arrouye <yves@debian.org>  Fri,  1 Mar 2002 21:51:47 -0800
+
+icu (2.0-3) unstable; urgency=low
+
+  * Renamed doc-base to icu-doc.doc-base. Closes: 127487
+
+ -- Yves Arrouye <yves@debian.org>  Fri, 18 Jan 2002 22:33:53 -0800
+
+icu (2.0-2) unstable; urgency=low
+
+  * Fixed a bug in uprv_uca_cloneTempTable().  Closes: 128484
+  * Update Debian bugs status.  Closes: 104642
+  * Use the official 2.0 tarball as the original tar.
+  * Added manual pages for every tool.
+
+ -- Yves Arrouye <yves@debian.org>  Wed, 16 Jan 2002 20:45:42 -0800
+
+icu (2.0-1) unstable; urgency=low
+
+  * Update to ICU version 2.0.
+
+ -- Yves Arrouye <yves@debian.org>  Sat, 10 Nov 2001 21:58:19 -0800
+
+icu (1.8.1-2) unstable; urgency=low
+
+  * Updated copyright file. Closes: 112488
+  * Updated icu-locales description. Closes: 75499
+
+ -- Yves Arrouye <yves@debian.org>  Sat, 10 Nov 2001 21:24:58 -0800
+
+icu (1.8.1-1.1) unstable; urgency=low
+
+  * NMU to resolve build failures on ia64 and (hopefully) hppa.
+  * config.{sub|guess} update
+  * source/tools/ctestfw/ctest.c: Add static declaration to global
+    variables local to that module to avoid @gprel relocation errors.
+    Closes: 104642
+
+ -- Yves Arrouye <yves@debian.org>  Sat, 10 Nov 2001 21:24:44 -0800
+
+icu (1.8.1-1) unstable; urgency=low
+
+  * Update to ICU version 1.8.1.
+
+ -- root <yves@debian.org>  Mon, 21 May 2001 15:27:36 -0700
+
+icu (1.7-1) unstable; urgency=low
+
+  * Update to ICU version 1.7.
+
+ -- Yves Arrouye <yves@debian.org>  Tue, 21 Nov 2000 22:54:52 -0800
+
+icu (1.6.0.1-20001113-2) unstable; urgency=low
+
+  * New snapshot with better ISO-2022.
+
+ -- Yves Arrouye <yves@debian.org>  Mon, 13 Nov 2000 21:05:00 -0800
+
+icu (1.6.0.1-20001027-1) unstable; urgency=low
+
+  * Move architecture-dependent files into /usr/lib, instead of
+    /usr/share.
+  * Move convrtrs.txt into /etc/icu, make it a conffile, and generate
+    /usr/lib/icu/1.6.0.1/cnvalias.dat from it at postinst time.
+  * Manage a /usr/lib/icu/current symbolic link across installations
+    of the libicuXX packages. The symlink will always point to the
+    highest numbered version of ICU.
+
+ -- Yves Arrouye <yves@debian.org>  Fri, 27 Oct 2000 15:40:12 -0700
+
+icu (1.6.0.1-20001017-1) unstable; urgency=low
+
+  * Initial Release.
+
+ -- Yves Arrouye <yves@debian.org>  Tue, 24 Oct 2000 16:14:12 -0700
+
+Local variables:
+mode: debian-changelog
+End:
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..a183a62
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,90 @@
+Source: icu
+Section: libs
+Priority: optional
+Maintainer: Daniel Glassey <wdg@debian.org>
+Uploaders: Ivo Timmermans <ivo@debian.org>
+Standards-Version: 3.6.0
+Build-Depends: debhelper (>> 3.0), doxygen, autotools-dev
+
+Package: libicu30-dev
+Section: devel
+Architecture: any
+Depends: libicu${major} (= ${Source-Version}), libc6-dev
+Provides: libicu-dev
+Conflicts: libicu-dev
+Suggests: icu-doc
+Description: International Components for Unicode (development files)
+ ICU is a C++ and C library that provides robust and full-featured Unicode
+ and locale support. This package contains the development files for ICU.
+
+Package: icu-doc
+Section: doc
+Architecture: all
+Description: API documentation for ICU classes and functions
+ ICU is a C++ and C library that provides robust and full-featured Unicode
+ and locale support. This package contains HTML files documenting the ICU
+ APIs.
+ 
+Package: libicu30
+Section: libs
+Architecture: any
+Depends: ${shlibs:Depends}
+Recommends: icu
+Description: International Components for Unicode (libraries)
+ ICU is a C++ and C library that provides robust and full-featured Unicode
+ and locale 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: icu
+Section: libs
+Architecture: any
+Depends: libicu${major} (>= ${Source-Version}), make
+Recommends: icu-locales
+Description: International Components for Unicode (non locale data)
+ ICU is a C++ and C library that provides robust and full-featured Unicode
+ and locale support. The library provides calendar support, conversions
+ for more than 230 character sets, language-sensitive collation, date
+ and time formatting, support for more than 140 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.
+ It also contains the tools needed to manipulate these data.
+
+Package: icu-locales
+Section: libs
+Architecture: any
+Depends: libicu${major} (>= ${Source-Version})
+Description: Locale data for ICU
+ The locale data are used by ICU to provide localization (l10n) and
+ internationalization (i18n) support to applications using the ICU library.
+ This package also contains break data for various languages, and
+ transliteration data. 
+
+Package: icu-data
+Priority: extra
+Section: libs
+Architecture: all
+Depends: icu
+Description: Data for ICU (source files)
+ These data describe the Unicode data (normative and informative), and
+ also all the table-based converters provided in the ICU distribution.
+ .
+ This package contains uncompiled source data. Precompiled data are in the
+ `libicu${major}' package.
+
+Package: icu-i18ndata
+Priority: extra
+Section: libs
+Architecture: all
+Depends: icu
+Description: Locale data for ICU (source files)
+ The locale data are used by ICU to provide localization (l10n) and
+ internationalization (i18n) support to ICU applications. This package
+ also contains break data for various languages, and transliteration data.
+ .
+ This package contains uncompiled source data. Precompiled data are in the
+ `icu-locales' package.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..eddd3b4
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,35 @@
+ICU License - ICU 1.8.1 and later
+
+COPYRIGHT AND PERMISSION NOTICE
+
+Copyright (c) 1995-2001 International Business Machines Corporation and others
+All rights reserved.
+
+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.
+
+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.
+
+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.
+
+--------------------------------------------------------------------------------
+All trademarks and registered trademarks mentioned herein are the property of their respective owners.
+
diff --git a/debian/icu-doc.doc-base b/debian/icu-doc.doc-base
new file mode 100644
index 0000000..9810e67
--- /dev/null
+++ b/debian/icu-doc.doc-base
@@ -0,0 +1,13 @@
+Document: icu-doc
+Title: ICU API Documentation
+Author: IBM Corporation and Others
+Abstract: This manual describes the APIs of the
+  International Components for Unicode C/C++
+  library. It is a useful reference for the
+  ICU programmer.
+Section: Libs
+
+Format: HTML
+Index: /usr/share/doc/icu-doc/html/index.html
+Files: /usr/share/doc/icu-doc/html/*.html
+
diff --git a/debian/icu.conffiles.in b/debian/icu.conffiles.in
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/debian/icu.conffiles.in
diff --git a/debian/icu.postinst.in b/debian/icu.postinst.in
new file mode 100644
index 0000000..e4cbc1f
--- /dev/null
+++ b/debian/icu.postinst.in
@@ -0,0 +1,71 @@
+#! /bin/sh
+# Copyright (c) 2000-2003 International Business Machines
+# Corporation and others. All Rights Reserved.
+# postinst script for foo
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <postinst> `configure' <most-recently-configured-version>
+#        * <old-postinst> `abort-upgrade' <new version>
+#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+#          <new-version>
+#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+#          <failed-install-package> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see /usr/share/doc/packaging-manual/
+#
+# quoting from the policy:
+#     Any necessary prompting should almost always be confined to the
+#     post-installation script, and should be protected with a conditional
+#     so that unnecessary prompting doesn't happen if a package's
+#     installation fails and the `postinst' is called with `abort-upgrade',
+#     `abort-remove' or `abort-deconfigure'.
+
+case "$1" in
+    configure)
+	# Adjust the current ICU link in @libdir@/@PACKAGE@
+
+	prefix=@prefix@
+	exec_prefix=@exec_prefix@
+
+	if [ -d @libdir@/@PACKAGE@ ]
+	then
+	    icucurrent=`2>/dev/null ls -dp @libdir@/@PACKAGE@/* | sed -n 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+	    cd @libdir@/@PACKAGE@
+	    rm -f current
+	    if test x"$icucurrent" != x
+	    then
+	        ln -s "$icucurrent" current
+	    fi
+
+	    # Set ICU_DATA for ease of testing files. It is not necessary to
+	    # export it as we are guaranteed that the binaries we invoke will
+	    # use the right directory. But we're not taking chances with the
+	    # future :)
+
+	    ICU_DATA=@libdir@/@PACKAGE@/@VERSION@
+	    export ICU_DATA
+
+	fi
+    ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 0
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/debian/icu.prerm.in b/debian/icu.prerm.in
new file mode 100644
index 0000000..28d8c01
--- /dev/null
+++ b/debian/icu.prerm.in
@@ -0,0 +1,56 @@
+#! /bin/sh
+# Copyright (c) 2000-2003 International Business Machines
+# Corporation and others. All Rights Reserved.
+# prerm script for foo
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <prerm> `remove'
+#        * <old-prerm> `upgrade' <new-version>
+#        * <new-prerm> `failed-upgrade' <old-version>
+#        * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
+#        * <deconfigured's-prerm> `deconfigure' `in-favour'
+#          <package-being-installed> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see /usr/share/doc/packaging-manual/
+
+case "$1" in
+    remove|upgrade|deconfigure)
+	# Adjust the current ICU link in @libdir@/@PACKAGE@
+
+	prefix=@prefix@
+	exec_prefix=@exec_prefix@
+
+	if [ -d @libdir@/@PACKAGE@ ]
+	then
+	    icucurrent=`2>/dev/null ls -dp @libdir@/@PACKAGE@/* | sed -n 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+	    cd @libdir@/@PACKAGE@
+	    rm -f current
+	    if test x"$icucurrent" != x
+	    then
+	        ln -s "$icucurrent" current
+	    fi
+	fi
+
+#       install-info --quiet --remove /usr/info/foo.info.gz
+        ;;
+
+    failed-upgrade)
+        ;;
+    *)
+        echo "prerm called with unknown argument \`$1'" >&2
+        exit 0
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff --git a/debian/libicu.postinst b/debian/libicu.postinst
new file mode 100644
index 0000000..a262d90
--- /dev/null
+++ b/debian/libicu.postinst
@@ -0,0 +1,70 @@
+#! /bin/sh
+# Copyright (c) 2000-2003 International Business Machines
+# Corporation and others. All Rights Reserved.
+# postinst script for foo
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <postinst> `configure' <most-recently-configured-version>
+#        * <old-postinst> `abort-upgrade' <new version>
+#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+#          <new-version>
+#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+#          <failed-install-package> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see /usr/share/doc/packaging-manual/
+#
+# quoting from the policy:
+#     Any necessary prompting should almost always be confined to the
+#     post-installation script, and should be protected with a conditional
+#     so that unnecessary prompting doesn't happen if a package's
+#     installation fails and the `postinst' is called with `abort-upgrade',
+#     `abort-remove' or `abort-deconfigure'.
+
+# Call ldconfig in a way that makes lintian happy.
+
+if [ "$1" = "configure" ]; then ldconfig; fi
+
+# And now do the rest of the configuration
+
+case "$1" in
+    configure)
+
+	# Adjust the current ICU link in /usr/lib/icu
+
+	if [ -d /usr/lib/icu ]
+	then
+
+	icucurrent=`2>/dev/null ls -dp /usr/lib/icu/* | sed -n 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+	cd /usr/lib/icu
+	rm -f current
+	if test x"$icucurrent" != x
+	then
+	    ln -s "$icucurrent" current
+	    ln -sf current/Makefile.inc .
+	fi
+
+	fi
+    ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 0
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff --git a/debian/libicu.prerm.in b/debian/libicu.prerm.in
new file mode 100644
index 0000000..a06ac25
--- /dev/null
+++ b/debian/libicu.prerm.in
@@ -0,0 +1,55 @@
+#! /bin/sh
+# Copyright (c) 2000-2003 International Business Machines
+# Corporation and others. All Rights Reserved.
+# prerm script for foo
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <prerm> `remove'
+#        * <old-prerm> `upgrade' <new-version>
+#        * <new-prerm> `failed-upgrade' <old-version>
+#        * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
+#        * <deconfigured's-prerm> `deconfigure' `in-favour'
+#          <package-being-installed> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see /usr/share/doc/packaging-manual/
+
+case "$1" in
+    remove|upgrade|deconfigure)
+	# Adjust the current ICU link in @libdir@/@PACKAGE@
+
+	prefix=@prefix@
+	exec_prefix=@exec_prefix@
+
+	if [ -d @libdir@/@PACKAGE@ ]
+	then
+	    icucurrent=`2>/dev/null ls -dp @libdir@/@PACKAGE@/* | sed -n 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+	    cd @libdir@/@PACKAGE@
+	    rm -f current
+	    if test x"$icucurrent" != x
+	    then
+	        ln -s "$icucurrent" current
+	    fi
+	fi
+
+#       install-info --quiet --remove /usr/info/foo.info.gz
+        ;;
+    failed-upgrade)
+        ;;
+    *)
+        echo "prerm called with unknown argument \`$1'" >&2
+        exit 0
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff --git a/debian/postinst.in b/debian/postinst.in
new file mode 100644
index 0000000..1e7a3f7
--- /dev/null
+++ b/debian/postinst.in
@@ -0,0 +1,63 @@
+#! /bin/sh
+# Copyright (c) 2000-2003 International Business Machines
+# Corporation and others. All Rights Reserved.
+# postinst script for foo
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <postinst> `configure' <most-recently-configured-version>
+#        * <old-postinst> `abort-upgrade' <new version>
+#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+#          <new-version>
+#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+#          <failed-install-package> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see /usr/share/doc/packaging-manual/
+#
+# quoting from the policy:
+#     Any necessary prompting should almost always be confined to the
+#     post-installation script, and should be protected with a conditional
+#     so that unnecessary prompting doesn't happen if a package's
+#     installation fails and the `postinst' is called with `abort-upgrade',
+#     `abort-remove' or `abort-deconfigure'.
+
+case "$1" in
+    configure)
+	# Adjust the current ICU link in @libdir@/@PACKAGE@
+
+	prefix=@prefix@
+	exec_prefix=@exec_prefix@
+
+	if [ -d @libdir@/@PACKAGE@ ]
+	then
+	    icucurrent=`2>/dev/null ls -dp @libdir@/@PACKAGE@/* | sed -n 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+	    cd @libdir@/@PACKAGE@
+	    rm -f current
+	    if test x"$icucurrent" != x
+	    then
+	        ln -s "$icucurrent" current
+	    fi
+	fi
+    ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 0
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff --git a/debian/prerm.in b/debian/prerm.in
new file mode 100644
index 0000000..a06ac25
--- /dev/null
+++ b/debian/prerm.in
@@ -0,0 +1,55 @@
+#! /bin/sh
+# Copyright (c) 2000-2003 International Business Machines
+# Corporation and others. All Rights Reserved.
+# prerm script for foo
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <prerm> `remove'
+#        * <old-prerm> `upgrade' <new-version>
+#        * <new-prerm> `failed-upgrade' <old-version>
+#        * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
+#        * <deconfigured's-prerm> `deconfigure' `in-favour'
+#          <package-being-installed> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see /usr/share/doc/packaging-manual/
+
+case "$1" in
+    remove|upgrade|deconfigure)
+	# Adjust the current ICU link in @libdir@/@PACKAGE@
+
+	prefix=@prefix@
+	exec_prefix=@exec_prefix@
+
+	if [ -d @libdir@/@PACKAGE@ ]
+	then
+	    icucurrent=`2>/dev/null ls -dp @libdir@/@PACKAGE@/* | sed -n 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+	    cd @libdir@/@PACKAGE@
+	    rm -f current
+	    if test x"$icucurrent" != x
+	    then
+	        ln -s "$icucurrent" current
+	    fi
+	fi
+
+#       install-info --quiet --remove /usr/info/foo.info.gz
+        ;;
+    failed-upgrade)
+        ;;
+    *)
+        echo "prerm called with unknown argument \`$1'" >&2
+        exit 0
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..fcbca82
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,256 @@
+#!/usr/bin/make -f
+# Copyright (c) 2000-2003 International Business Machines
+# Corporation and others. All Rights Reserved.
+# ICU debian/rules that uses debhelper.
+
+# The Debian packages for ICU are created and maintained by
+# Yves Arrouye <yves@debian.org>. They are part of Debian GNU/Linux
+# since the Debian woody release.
+
+# Decide whether we want to automatically manage the repackaging of
+# the common data from individual files or not.
+ICU_AUTO_COMMON=NO
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+# This is the debhelper compatability version to use.
+export DH_COMPAT=2
+#firstdir := $(shell sed -n 's/Package: \(.*\)/\1/p' debian/control | head -1)else
+
+# Where the source for ICU is, where to build
+srcdir = source
+builddir = build
+# How to get to $(srcdir) from $(builddir)
+builddir_relative_topdir = ..
+builddir_relative_srcdir = $(builddir_relative_topdir)/$(srcdir)
+
+# Getting the ICU version numbers, stolen from configure.in (that's okay, I
+# wrote the configure.in part anyway)
+
+version := $(shell sed -n -e 's/^[ 	]*\#[ 	]*define[ 	]*U_ICU_VERSION[ 	]*"\([^"]*\)".*/\1/p' $(srcdir)/common/unicode/uversion.h)
+libversion := $(shell echo $(version) | sed -e 's/\.//' -e 's/^\([^.]*\)$$/\1.0/')
+major := $(shell echo $(libversion) | sed 's/\..*//')
+
+# ICU installation directories, w/o the initial slash
+pkgdatadir = usr/share/icu
+icudatadir = $(pkgdatadir)/$(version)
+pkglibdir = usr/lib/icu
+iculibdir = $(pkglibdir)/$(version)
+datasrcdir = usr/share/icu/$(version)/data
+# This is where data needs to be moved
+ifeq ($(ICU_AUTO_COMMON),YES)
+icufildir = $(iculibdir)/files
+else
+icufildir = $(iculibdir)
+endif
+
+# Build flags
+
+CFLAGS = -O3 # -Wall
+ifeq ($(shell uname -m),s390)
+CXXFLAGS = -O1 # -Wall
+else
+CXXFLAGS = -O # -Wall
+endif
+
+INSTALL_PROGRAM = /usr/bin/install
+
+ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
+CFLAGS += -g
+CXXFLAGS += -g
+endif
+ifneq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
+INSTALL_PROGRAM += -s
+endif
+
+all: build
+
+configure: $(builddir)/configure-stamp
+$(builddir)/configure-stamp:
+	# Add here commands to configure the package.
+	test -d $(builddir) || mkdir $(builddir)
+	cd $(builddir); CFLAGS='$(CFLAGS)' CXXFLAGS='$(CXXFLAGS)' INSTALL_PROGRAM='$(INSTALL_PROGRAM)' $(SHELL) $(builddir_relative_srcdir)/configure --srcdir=$(builddir_relative_srcdir) --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var --with-data-packaging=files --enable-shared --enable-static --disable-samples
+	touch $@
+
+build: $(builddir)/configure-stamp debian-files $(builddir)/build-stamp
+
+# Build some Debian files
+DEBIAN_FILES=icu.conffiles postinst prerm icu.postinst icu.prerm libicu$(major).postinst README.Debian.libicu$(major)-dev
+
+debian/%: debian/%.in
+	cd $(builddir) \
+	  && CONFIG_FILES=$(builddir_relative_topdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+debian/libicu$(major)%: debian/libicu%
+	cp $< $@
+debian/README.Debian.libicu$(major)%: debian/README.Debian.libicu%
+	cp $< $@
+
+debian-files: $(addprefix debian/,$(DEBIAN_FILES))
+
+$(builddir)/build-stamp:
+	dh_testdir
+
+	# Add here commands to compile the package.
+	$(MAKE) -C $(builddir)
+	$(MAKE) -C $(builddir) doc
+
+	touch $@
+
+clean: update-debian-files
+	dh_testdir
+	dh_testroot
+	-test -r /usr/share/misc/config.sub && \
+	   cp -f /usr/share/misc/config.sub $(srcdir)/config.sub
+	-test -r /usr/share/misc/config.guess && \
+	   cp -f /usr/share/misc/config.guess $(srcdir)/config.guess
+
+	 $(RM) $(builddir)/build-stamp $(builddir)/configure-stamp
+
+	# Add here commands to clean up after the build process.
+	-$(MAKE) -C $(builddir) distclean
+	#-$(RM) `find $(builddir)/samples $(builddir)/test -name Makefile -print`
+	-$(RM) `find $(builddir) -name Makefile -print`
+	dh_clean
+	$(RM) $(addprefix debian/,$(DEBIAN_FILES)) debian/control.new
+
+	#if test -d $(builddir) -a $(builddir) != $(srcdir); then rmdir `find $(builddir) -type d -print | sort -r`; fi
+	if test -d $(builddir) -a $(builddir) != $(srcdir); then $(RM) -r $(builddir); fi
+
+install: build
+	dh_testdir
+	dh_testroot
+	dh_clean -k
+	dh_installdirs
+
+	# Add here commands to install the package into debian/tmp
+	$(MAKE) -C $(builddir) install DESTDIR=`pwd`/debian/tmp
+	$(MAKE) -C $(builddir) install-doc DESTDIR=`pwd`/debian/tmp
+
+# Build architecture-independent files here.
+binary-indep: build install
+	#
+	# build icu-doc package by moving files
+	#
+	mv debian/tmp/usr/share/doc/icu debian/tmp/usr/share/doc/icu-doc
+	dh_movefiles -picu-doc \
+	    usr/share/doc/icu-doc
+	#
+	# build icu-i18ndata from the source data
+	#
+	for d in locales translit brkitr; do \
+	    test -d debian/icu-i18ndata/$(datasrcdir)/$$d || \
+	        mkdir -p debian/icu-i18ndata/$(datasrcdir)/$$d; \
+	    install -m 644 $(srcdir)/data/$$d/*.* \
+	        debian/icu-i18ndata/$(datasrcdir)/$$d; \
+	done
+	#
+	# build icu-data from the source data
+	#
+	for d in mappings unidata misc; do \
+	    test -d debian/icu-data/$(datasrcdir)/$$d || \
+	        mkdir -p debian/icu-data/$(datasrcdir)/$$d; \
+	    install -m 644 $(srcdir)/data/$$d/*.* \
+	        debian/icu-data/$(datasrcdir)/$$d; \
+	done
+
+# Build architecture-dependent files here.
+binary-arch: build install
+#	dh_testversion
+	dh_testdir
+	dh_testroot
+	#
+	# build libicu${major} package by moving files from icu-dev
+	#
+	$(RM) debian/tmp/usr/lib/libicuctestfw.*
+	dh_movefiles -plibicu$(major) \
+	    usr/lib/*.so.*
+	mkdir debian/libicu$(major)/usr/lib/icu
+	#
+	# massage data files
+	#
+#	$(RM) debian/tmp/$(iculibdir)/cnvalias.dat
+ifneq ($(iculibdir),$(icufildir))
+	test -d debian/tmp/$(icufildir) || mkdir debian/tmp/$(icufildir)
+	mv debian/tmp/$(iculibdir)/*.* debian/tmp/$(icufildir)
+	mv debian/tmp/$(icufildir)/*msg.dat debian/tmp/$(iculibdir)
+	mv debian/tmp/$(icufildir)/*.inc debian/tmp/$(iculibdir)
+endif
+	#
+	# build icu package by moving files from icu-dev
+	#
+	$(RM) debian/tmp/$(iculibdir)/../Makefile.inc debian/tmp/$(iculibdir)/../current
+ifneq ($(iculibdir),$(icufildir))
+	dh_movefiles -picu \
+	    $(iculibdir)/*msg.dat
+endif
+	# The license.html must be installed with ICU's source code.
+	# This includes the headers.
+	dh_movefiles -picu \
+	    etc \
+	    usr/bin \
+	    usr/sbin \
+	    $(icudatadir)/license.html \
+	    $(iculibdir)/*.inc \
+	    $(icufildir)/*.cnv \
+	    $(icufildir)/*.dat \
+	    usr/share/man
+	#
+	# build icu-locales package by moving files from icu-dev
+	#
+	dh_movefiles -picu-locales \
+	    $(icufildir)/*.res \
+	    $(icufildir)/*.brk
+	#
+	# move the rest of the development files
+	# in their package
+	#
+	dh_movefiles -a usr
+	#
+	# do a bit of cleanup
+	#
+	$(RM) -r debian/tmp/etc debian/tmp/usr/sbin \
+	    debian/tmp/usr/share/man
+	#
+	# continue to prepare packages
+	#
+#	dh_installdebconf
+	dh_installdocs -a
+	dh_installexamples -a $(srcdir)/samples/*
+	find debian/libicu$(major)-dev -name CVS -o -name .cvsignore | xargs $(RM) -r
+	dh_installmenu -a
+#	dh_installemacsen
+#	dh_installpam
+#	dh_installinit
+	dh_installcron -a
+	dh_installmanpages -picu
+	dh_installinfo -a
+	# dh_undocumented -picu
+	dh_installchangelogs -a
+	dh_link -a
+	dh_strip -a
+	dh_compress -a
+	dh_fixperms -a
+	# You may want to make some executables suid here.
+	dh_makeshlibs -a
+	dh_installdeb -a
+#	dh_perl
+	dh_shlibdeps -a -ldebian/libicu$(major)/usr/lib
+	dh_gencontrol -a -- -Vversion=$(version) -Vmajor=$(major)
+	dh_md5sums -a
+	dh_builddeb -a
+
+# Automatically update changelog and control
+update-debian-files:
+	if [ x"$$NO_AUTO_DCH" = x ]; \
+	then \
+	    cvers=`sed -n 's/^icu (\([^)]*\)).*/\1/p' debian/changelog | head -1`; if dpkg --compare-versions $$cvers lt $(version)-1; then \
+	        dch -v $(version)-1 "Update to ICU version $(version). (This comment is generated.)"; \
+	        sed 's/libicu[0-9][0-9]*/libicu$(major)/g' debian/control >debian/control.new && mv debian/control.new debian/control; \
+	    fi; \
+	fi
+
+binary: update-debian-files binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install debian-files update-changelog
+
diff --git a/license.html b/license.html
new file mode 100644
index 0000000..2a2c8e5
--- /dev/null
+++ b/license.html
@@ -0,0 +1,45 @@
+<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>
+<h1>ICU License - ICU 1.8.1 and later</h1>
+<pre>
+COPYRIGHT AND PERMISSION NOTICE
+
+Copyright (c) 1995-2003 International Business Machines Corporation and others
+All rights reserved.
+
+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.
+
+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.
+
+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.
+
+--------------------------------------------------------------------------------
+All trademarks and registered trademarks mentioned herein are the property of their respective owners.
+</pre>
+</body>
+</html>
diff --git a/packaging/PACKAGES b/packaging/PACKAGES
new file mode 100644
index 0000000..12b3523
--- /dev/null
+++ b/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>
diff --git a/packaging/README b/packaging/README
new file mode 100644
index 0000000..1bfe85a
--- /dev/null
+++ b/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.
diff --git a/packaging/debian/README b/packaging/debian/README
new file mode 100644
index 0000000..0388625
--- /dev/null
+++ b/packaging/debian/README
@@ -0,0 +1,5 @@
+// Copyright (c) 2000-2003 International Business Machines
+// Corporation and others. All Rights Reserved.
+The Debian packaging is in the debian directory at the toplevel of ICU's
+distribution.
+
diff --git a/packaging/rpm/icu.spec b/packaging/rpm/icu.spec
new file mode 100644
index 0000000..767160d
--- /dev/null
+++ b/packaging/rpm/icu.spec
@@ -0,0 +1,224 @@
+#   Copyright (C) 2000-2004, 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.0
+Release: 1
+Requires: libicu30 >= 3.0
+Summary: International Components for Unicode
+Packager: Ian Holsman (CNET Networks) <ianh@cnet.com>
+Copyright: X License
+Group: System Environment/Libraries
+Source: icu-3.0.tgz
+BuildRoot: /var/tmp/%{name}
+%description
+ICU is a C++ and C library 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 libicu30
+Summary: International Components for Unicode (libraries)
+Group: Development/Libraries
+%description -n libicu30
+ICU is a C++ and C library 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: libicu30 = 3.0
+%description -n libicu-devel
+ICU is a C++ and C library 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: libicu30 >= 3.0
+%description locales
+The locale data are used by ICU to provide localization (l10n) and
+internationalization (i18n) 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/lib/icu/3.0
+#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 '/\/3.0\//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 libicu30
+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 libicu30
+# Adjust the current ICU link in /usr/lib/icu
+
+icucurrent=`2>/dev/null ls -dp /usr/lib/icu/* | sed -n -e '/\/3.0\//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
+
+%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/lib/icu/3.0\"' >> icudefs.mk
+make RPM_OPT_FLAGS="$RPM_OPT_FLAGS"
+
+%install
+rm -rf $RPM_BUILD_ROOT
+cd source
+make install DESTDIR=$RPM_BUILD_ROOT
+# static causes a static icudata lib to be built... - it's not needed, remove it.
+##cp stubdata/libicudata.a $RPM_BUILD_ROOT/usr/lib/icu/3.0/
+rm -f $RPM_BUILD_ROOT/usr/lib/icu/3.0/libicudata.a
+
+
+%files
+%defattr(-,root,root)
+%doc readme.html
+%doc license.html
+%config /etc/icu/convrtrs.txt
+/usr/share/icu/3.0/README
+/usr/share/icu/3.0/license.html
+/usr/lib/icu/3.0/*.cnv
+/usr/lib/icu/3.0/*.icu
+
+/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/gennames
+/usr/sbin/gennorm
+/usr/sbin/genpname
+/usr/sbin/genprops
+/usr/sbin/gensprep
+/usr/sbin/genuca
+/usr/sbin/icuswap
+/usr/share/icu/3.0/mkinstalldirs
+
+/usr/man/man1/gencnval.1.*
+/usr/man/man1/derb.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/gennames.8.*
+/usr/man/man8/gennorm.8.*
+/usr/man/man8/genprops.8.*
+/usr/man/man8/genuca.8.*
+/usr/man/man8/genidna.8.*
+
+%files -n icu-locales
+/usr/lib/icu/3.0/*.brk
+/usr/lib/icu/3.0/*.res
+%files -n libicu30
+%doc license.html
+/usr/lib/libicui18n.so.30
+/usr/lib/libicui18n.so.30.0
+/usr/lib/libicutu.so.30
+/usr/lib/libicutu.so.30.0
+/usr/lib/libicuuc.so.30
+/usr/lib/libicuuc.so.30.0
+/usr/lib/libicudata.so.30
+/usr/lib/libicudata.so.30.0
+/usr/lib/libicuio.so.30
+/usr/lib/libicuio.so.30.0
+/usr/lib/libiculx.so.30
+/usr/lib/libiculx.so.30.0
+/usr/lib/libicule.so.30
+/usr/lib/libicule.so.30.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/3.0/Makefile.inc
+/usr/lib/icu/Makefile.inc
+/usr/share/icu/3.0/config
+/usr/share/icu/3.0/README
+/usr/share/doc/icu-3.0/*
+
+%changelog
+* 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
+
diff --git a/readme.html b/readme.html
new file mode 100644
index 0000000..4d40bfe
--- /dev/null
+++ b/readme.html
@@ -0,0 +1,1873 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<html lang="en-US">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Windows (vers 1st March 2004), see www.w3.org">
+
+  <title>ReadMe for ICU</title>
+  <meta name="COPYRIGHT" content=
+  "Copyright (c) 1997-2004 IBM Corporation and others. All Rights Reserved.">
+  <meta name="KEYWORDS" content=
+  "ICU; International Components for Unicode; 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">
+<style type="text/css">
+    h1 {border-width: 2px; border-style: solid; text-align: center; width: 100%; font-size: 200%; font-weight: bold}
+    h2 {margin-top: 3em; text-decoration: underline; page-break-before: always}
+    h2.TOC {page-break-before: auto}
+    h3 {margin-top: 2em; text-decoration: underline}
+    h4 {text-decoration: underline}
+    h5 {text-decoration: underline}
+    caption {font-weight: bold; text-align: left}
+    div.indent {margin-left: 2em}
+    ul.TOC {list-style-type: none}
+    samp {margin-left: 1em; border-style: groove; padding: 1em; display: block; background-color: #EEEEEE}
+</style>
+</head>
+
+<body>
+  <h1>International Components for Unicode<br>
+  <abbr title="International Components for Unicode">ICU</abbr> 3.0
+  ReadMe</h1>
+
+  <p>Version: 2004-May-25<br>
+  Copyright &copy; 1997-2004 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 class="TOC">
+        <li><a href="#HowToBuildSupported">Supported Platforms</a></li>
+
+        <li><a href="#HowToBuildWindows">Windows</a></li>
+
+        <li><a href="#HowToBuildWindowsXP64">Windows XP on IA64</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">OS/400 (iSeries)</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 class="TOC">
+        <li><a href="#ImportantNotesCPlusPlus">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 class="TOC">
+        <li><a href="#PlatformDependenciesNew">Porting To A New
+        Platform</a></li>
+
+        <li><a href="#PlatformDependenciesImpl">Platform Dependent
+        Implementations</a></li>
+
+        <li><a href="#PlatformDependenciesBuildOrder">Build Order Without
+        Using ICU's Makefiles</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 200 codepages</li>
+
+    <li>Locale data for more than 230 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 <a href=
+  "http://oss.software.ibm.com/icu4j/index.html">ICU4J</a> 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 border="1" cellpadding="3" width="100%" 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 Homepage</td>
+
+      <td><a href=
+      "http://oss.software.ibm.com/icu/index.html">http://oss.software.ibm.com/icu/index.html</a></td>
+    </tr>
+
+    <tr>
+      <td>ICU4J Homepage</td>
+
+      <td><a href=
+      "http://oss.software.ibm.com/icu4j/index.html">http://oss.software.ibm.com/icu4j/index.html</a></td>
+    </tr>
+
+    <tr>
+      <td>FAQ - Frequently Asked Questions about ICU</td>
+
+      <td><a href=
+      "http://oss.software.ibm.com/icu/userguide/icufaq.html">http://oss.software.ibm.com/icu/userguide/icufaq.html</a></td>
+    </tr>
+
+    <tr>
+      <td>ICU User's Guide</td>
+
+      <td><a href=
+      "http://oss.software.ibm.com/icu/userguide/index.html">http://oss.software.ibm.com/icu/userguide/index.html</a></td>
+    </tr>
+
+    <tr>
+      <td>Download ICU Releases</td>
+
+      <td><a href=
+      "http://oss.software.ibm.com/icu/download/index.html">http://oss.software.ibm.com/icu/download/index.html</a></td>
+    </tr>
+
+    <tr>
+      <td>API Documentation Online</td>
+
+      <td><a href=
+      "http://oss.software.ibm.com/icu/apiref/index.html">http://oss.software.ibm.com/icu/apiref/index.html</a></td>
+    </tr>
+
+    <tr>
+      <td>Online ICU Demos</td>
+
+      <td><a href=
+      "http://oss.software.ibm.com/icu/demo/index.html">http://oss.software.ibm.com/icu/demo/index.html</a></td>
+    </tr>
+
+    <tr>
+      <td>Contacts and Bug Reports/Feature Requests</td>
+
+      <td><a href=
+      "http://oss.software.ibm.com/icu/archives/index.html">http://oss.software.ibm.com/icu/archives/index.html</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>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://oss.software.ibm.com/icu/download/3.0/index.html">ICU 3.0 download
+  page</a>.</p>
+
+  <h3><a name="News_Locale" id="News_Locale">Locale Identifier
+  Changes</a></h3>
+
+  <p>The ICU locale identifier format has recently changed. In order to
+  improve support for RFC 3066 identifiers and to support keyword
+  identifiers, some minor breaking changes have been introduced. When your
+  application is working with POSIX locale identifiers or .NET locale
+  identifiers, you should use <code><a href=
+  "http://oss.software.ibm.com/icu/apiref/uloc_8h.html">uloc_canonicalize</a>()</code>
+  to convert it to an ICU locale identifier. It was an undocumented feature
+  that you could pass a POSIX locale to ICU, and ICU would convert it for you
+  automatically. For example, if you used @EURO or @PREEURO to identify
+  certain currencies, you should now be using the "@currency=" keyword for
+  the locale identifiers. If you use the <code>uloc_canonicalize()</code>
+  function, it will convert the @PREEURO variants to the proper ICU locale
+  identifier. For example, it will convert "fr-fr@PREEURO" to
+  "fr_FR@currency=FRF". More information about keywords can be found in the
+  <a href="http://oss.software.ibm.com/icu/userguide/locale.html">Locale
+  Section</a> of the User's Guide and <a href=
+  "http://www.openi18n.org/specs/ldml/1.0/ldml-spec.htm">on the OpenI18N
+  site</a>.</p>
+
+  <p>Some ISO 15924 script codes are used in some RFC 3066 language tags.
+  This is especially helpful when you need to differentiate cases where a
+  language can be written with more than one script. Since ICU now supports
+  ISO 15924 script codes in the locale identifier, you can now specify
+  locales like "zh_Hant" to specify Traditional Chinese. Previously, people
+  had to use "zh_TW" to specify Traditional Chinese, which isn't quite
+  correct because the locale identifier is specifying the language of a
+  region and not the type of language. The current locale identifiers, like
+  en_US, still work, and do not require any changes in your code. Future
+  versions of ICU will move the data into the proper locale resources, and
+  the locale infrastructure will be improved.</p>
+
+  <p>In order to differentiate between the two library names on all
+  platforms, static libraries now use an "s" as a prefix to differentiate
+  between the shared and static libraries. For example, "libicuuc.a" is now
+  "lib<strong>s</strong>icuuc.a". This means that if you used "-licuuc" to
+  link the common library into your application, you now need to use
+  "-lsicuuc".</p>
+
+  <h3><a name="News_ICUIO" id="News_ICUIO">ICUIO Library Changes</a></h3>
+
+  <p>The ICUIO library is still unsupported (this was previously called the
+  ustdio library), and some breaking fixes have been made to the library. %S
+  should be used for UTF-16 strings, and %C should be used for UChar for the
+  format strings. The %K and %U format specifiers are deprecated and will be
+  removed in a future version of ICU. Also u_fgets now uses the same argument
+  ordering as stdio fgets, which will make it easier for people to migrate
+  their existing stdio implementations to use ICUIO. Fortunately, u_fgets now
+  follows the Unicode algorithm for detecting hard line breaks, and some
+  performance enhancements to this library have been implemented so that most
+  of the formatting and parsing functions will run faster.</p>
+
+  <h3><a name="News_Library_Init" id="News_Library_Init">Library
+  Initialization</a></h3>
+
+  <p>ICU4C 2.6 introduces a library initialization function. It is required
+  to call it before using any ICU services in a multi-threaded environment.
+  For details please see the <a href=
+  "http://oss.software.ibm.com/icu/apiref/index.html">documentation</a> of
+  <code>u_init()</code> in the <code>unicode/uclean.h</code> header file.</p>
+  <hr>
+
+  <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://oss.software.ibm.com/icu/download/index.html">http://oss.software.ibm.com/icu/download/index.html</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. It will reconstruct the source directory, which
+    includes anonymous CVS control directories (see below).</li>
+
+    <li><strong>CVS 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 CVS repository to
+    ensure that you have the most recent version of all of the files. See our
+    <a href="http://oss.software.ibm.com/icu/develop/cvs.html">CVS page</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://oss.software.ibm.com/icu/userguide/design.html">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 border="1" cellpadding="0" width="100%" 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 border="1" cellpadding="0" width="100%" 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>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>
+
+        <ul>
+          <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://oss.software.ibm.com/icu/userguide/icudata.html">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 users' guide.</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 users' guide.</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 'ustdio'
+      file i/o library</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>/<b>packaging</b>/<br>
+      <i>&lt;ICU&gt;</i>/<b>debian</b>/</td>
+
+      <td>These directories 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 border="1" cellpadding="3" summary=
+  "ICU can be built on many platforms.">
+    <caption>
+      Here is a status of functionality of ICU on several different
+      platforms.
+    </caption>
+
+    <tr>
+      <th scope="col">Operating system</th>
+
+      <th scope="col">Compiler</th>
+
+      <th scope="col">Testing frequency</th>
+    </tr>
+
+    <tr>
+      <td>Windows 2000/XP</td>
+
+      <td>Microsoft Visual C++ 6.0</td>
+
+      <td>Reference platform</td>
+    </tr>
+
+    <tr>
+      <td>Windows XP</td>
+
+      <td>Microsoft Visual C++ .NET 2002 (7.0)</td>
+
+      <td>Reference platform</td>
+    </tr>
+
+    <tr>
+      <td>Red Hat Linux 7.2</td>
+
+      <td>gcc 2.96</td>
+
+      <td>Reference platform</td>
+    </tr>
+
+    <tr>
+      <td>AIX 5.1.0 L</td>
+
+      <td>Visual Age C++ 5.0</td>
+
+      <td>Reference platform</td>
+    </tr>
+
+    <tr>
+      <td>Solaris 7 (SunOS 5.7)</td>
+
+      <td>Workshop Pro (Forte) CC 6.0</td>
+
+      <td>Reference platform</td>
+    </tr>
+
+    <tr>
+      <td>HP-UX 11.01</td>
+
+      <td>aCC A.03.13<br>
+      cc A.11.01.00</td>
+
+      <td>Reference platform</td>
+    </tr>
+
+    <tr>
+      <td>Windows NT/98</td>
+
+      <td>Microsoft Visual C++ 6.0</td>
+
+      <td>Regularly tested</td>
+    </tr>
+
+    <tr>
+      <td>Windows 2000 with CygWin</td>
+
+      <td>Microsoft Visual C++ 6.0</td>
+
+      <td>Regularly tested</td>
+    </tr>
+
+    <tr>
+      <td>Mac OS X (10.2)</td>
+
+      <td>gcc 3.1<br>
+      (Developer Tools, July 2002)</td>
+
+      <td>Regularly tested</td>
+    </tr>
+
+    <tr>
+      <td>Solaris 8 (SunOS 5.8)</td>
+
+      <td>Workshop Pro CC 4.2<br>
+      (use 'runConfigureICU SOLARISCC/W4.2')</td>
+
+      <td>Regularly tested</td>
+    </tr>
+
+    <tr>
+      <td>Solaris 2.6 (SunOS 5.6)</td>
+
+      <td>gcc 2.95.2</td>
+
+      <td>Regularly tested</td>
+    </tr>
+
+    <tr>
+      <td>FreeBSD 4.8</td>
+
+      <td>gcc 2.95.4</td>
+
+      <td>Regularly tested</td>
+    </tr>
+
+    <tr>
+      <td>Red Hat Alpha Linux 7.2</td>
+
+      <td>gcc 2.96</td>
+
+      <td>Regularly tested</td>
+    </tr>
+
+    <tr>
+      <td>z/OS 1.2</td>
+
+      <td>cxx 1.2</td>
+
+      <td>Regularly tested</td>
+    </tr>
+
+    <tr>
+      <td>OS/400 (iSeries) V5R1</td>
+
+      <td>iCC</td>
+
+      <td>Regularly tested</td>
+    </tr>
+
+    <tr>
+      <td>Red Hat Alpha Linux 7.2</td>
+
+      <td>Compaq C++ Compiler 3.2<br>
+      Compaq C Compiler 6.5.6</td>
+
+      <td>Rarely tested</td>
+    </tr>
+
+    <tr>
+      <td>AIX 4.3.3</td>
+
+      <td>xlC_r 4.0.2.1</td>
+
+      <td>Rarely tested</td>
+    </tr>
+
+    <tr>
+      <td>QNX</td>
+
+      <td>gcc</td>
+
+      <td>Rarely tested</td>
+    </tr>
+
+    <tr>
+      <td>NetBSD, OpenBSD</td>
+
+      <td>gcc</td>
+
+      <td>Rarely tested</td>
+    </tr>
+
+    <tr>
+      <td>BeOS</td>
+
+      <td>gcc</td>
+
+      <td>Rarely tested</td>
+    </tr>
+
+    <tr>
+      <td>CygWin</td>
+
+      <td>gcc 2.95.3</td>
+
+      <td>Rarely tested</td>
+    </tr>
+
+    <tr>
+      <td>SGI/IRIX</td>
+
+      <td>&nbsp;</td>
+
+      <td>Rarely tested</td>
+    </tr>
+
+    <tr>
+      <td>Tru64 (OSF)</td>
+
+      <td>Compaq's cxx compiler</td>
+
+      <td>Rarely tested</td>
+    </tr>
+
+    <tr>
+      <td>HP-UX 11.01</td>
+
+      <td>CC A.03.10</td>
+
+      <td>Rarely tested</td>
+    </tr>
+
+    <tr>
+      <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>Reference platform</i></dt>
+
+    <dd>ICU will work on these platforms with these compilers</dd>
+
+    <dt><i>Regularly tested</i></dt>
+
+    <dd>ICU should 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="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 NT 4.0 and above, or Windows 98 and above</li>
+
+    <li>Microsoft Visual C++ 6.0 (Service Pack 2 is required to work with the
+    release build of max speed optimization).</li>
+  </ul>
+
+  <p>(If you want to build with Microsoft Visual C++ .NET, please refer to
+  the <a href="#HowToBuildWindowsDotNet">note about building with Visual
+  Studio .NET</a> below.)</p>
+
+  <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.dsw" workspace
+    file in Microsoft Visual C++ 6.0. (This workspace includes all the
+    International Components for Unicode libraries, necessary ICU building
+    tools, and the intltest and cintltest test suite projects). Please see
+    the note below if you want to build from the command line instead.</li>
+
+    <li>Set the active Project to the "all" project. To do this: Choose
+    "Project" menu, and select "Set active project". In the submenu, select
+    the "all" workspace.</li>
+
+    <li>Set the active configuration to "Win32 Debug" or "Win32 Release" (See
+    <a href="#HowToBuildWindowsConfig">Windows configuration note</a>
+    below).</li>
+
+    <li>Choose the "Build" menu and select "Rebuild All". 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
+    project to "intltest", and press F5 to run it.</li>
+
+    <li>Run the C test suite, "cintltst". To do this: set the active project
+    to "cintltst", and press F5 to run it.</li>
+
+    <li>Make sure that both "cintltst" and "intltest" passed without any
+    errors. The return codes are non-zero when they do not pass. Visual C++
+    will display the return codes in the debug tag of the output window. When
+    "intltest" and "cintltest" return 0, it means that everything is
+    installed correctly. You can press Ctrl+F5 on the test project to run the
+    test and see what error messages were displayed (if any tests
+    failed).</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, 'msdev
+  <i>&lt;ICU&gt;</i>\source\allinone\allinone.dsw /MAKE "ALL"'.</p>
+
+  <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 "Set Active Configuration", and select
+    "Win32 Release" or "Win32 Debug".</li>
+
+    <li>Another way is to select "Customize" in the "Tools" menu, select the
+    "Toolbars" tab, enable "Build" instead of "Build Minibar", and click on
+    "Close". This will bring up a toolbar which you can move aside the other
+    permanent toolbars at the top of the MSVC window. The advantage is that
+    you now have an easy-to-reach pop-up menu that will always show the
+    currently selected active configuration. Or, you can drag the project and
+    configuration selections and drop them on the menu bar for later
+    selection.</li>
+  </ul>
+
+  <p><a name="HowToBuildWindowsBatch" id=
+  "HowToBuildWindowsBatch"><strong>Batch Configuration Note:</strong></a> If
+  you want to build the Debug and Release configurations at the same time,
+  choose "Build" menu and select "Batch Build..." instead (and mark all
+  configurations as checked), then click the button named "Rebuild All". The
+  "all" workspace will build all the libraries, test programs and various ICU
+  tools (e.g. genrb for generating binary locale data files).</p>
+
+  <p><a name="HowToBuildWindowsDotNet" id=
+  "HowToBuildWindowsDotNet"><strong>Microsoft Visual Studio .NET
+  Note:</strong></a> ICU will build with Microsoft Visual Studio .NET 2002.
+  It is recommended that you use the
+  "<i>&lt;ICU&gt;</i>\source\allinone\allinone.sln" solution workspace to
+  build ICU. The instructions for building with Visual Studio .NET are
+  similar to the instructions for Visual Studio .NET. If you have Microsoft
+  Visual Studio .NET 2003 the Visual Studio .NET 2002 project files will
+  automatically be converted to 2003 project files when you open the solution
+  workspace for the first time.</p>
+
+  <h3><a name="HowToBuildWindowsXP64" href="#HowToBuildWindowsXP64" id=
+  "HowToBuildWindowsXP64">How To Build And Install On Windows XP on
+  IA64</a></h3>
+
+  <p>Building International Components for Unicode requires:</p>
+
+  <ul>
+    <li>Microsoft XP on an IA64 (Itanium&reg;) machine</li>
+
+    <li>Microsoft Visual C++ 6.0 (Service Pack 2 is required to work with the
+    release build of max speed optimization).</li>
+
+    <li>Microsoft Platform SDK.</li>
+  </ul>
+
+  <p>The steps are:</p>
+
+  <ol>
+    <li>Follow steps 1-3 in the <a href="#HowToBuildWindows">in the previous
+    section</a>.</li>
+
+    <li>Open the "Set Windows XP 64-bit Build Environment (Retail)" command
+    window from the Microsoft Platform SDK.</li>
+
+    <li>If your computer is not set up to do command line builds, then run
+    "set PATH=C:\Program Files (x86)\Microsoft Visual
+    Studio\Common\MSDev98\Bin;%PATH%" or include the path where MSDEV.EXE is
+    located.</li>
+
+    <li>Use cd to get into the <i>&lt;ICU&gt;</i> directory.</li>
+
+    <li>Run this command: 'msdev /USEENV
+    <i>&lt;ICU&gt;</i>\source\allinone\allinone.dsw /MAKE "all - Win64
+    Release"'</li>
+
+    <li>Run "cd source\test\intltest\Release"</li>
+
+    <li>Run the C++ test suite, "intltest". There should be no errors.</li>
+
+    <li>Run "cd ..\..\cintltst\Release"</li>
+
+    <li>Run the C test suite, "cintltst". There should be no errors.</li>
+
+    <li>Follow the last step in the <a href="#HowToBuildWindows">in the
+    previous section</a>.</li>
+  </ol>
+
+  <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 NT 4.0 or above, or Windows 98 or above</li>
+
+    <li>Microsoft Visual C++ 6.0 or above (when gcc isn't used).</li>
+
+    <li>Cygwin with the following installed:
+
+      <ul>
+        <li>bash</li>
+
+        <li>GNU make</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 (for example: "<tt>C:\Program
+    Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT</tt>").</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="#HowToConfigureICU">configuration
+    note</a> 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>
+
+  <h3><a name="HowToBuildUNIX" href="#HowToBuildUNIX" id="HowToBuildUNIX">How
+  To Build And Install On UNIX</a></h3>
+
+  <p>Building International Components for Unicode on UNIX requires:</p>
+
+  <ul>
+    <li>A C++ compiler installed on the target machine (for example: gcc, CC,
+    xlC_r, aCC, cxx, etc...).</li>
+
+    <li>An ANSI C compiler installed on the target machine (for example:
+    cc).</li>
+
+    <li>A recent version of GNU make (3.77+).</li>
+
+    <li>For a list of z/OS tools please view the <a href=
+    "#HowToBuildZOS">z/OS build section</a> of this document for further
+    details.</li>
+  </ul>
+
+  <p>Here are the steps to build ICU:</p>
+
+  <ol>
+    <li>Decompress the icu-<i>X</i>.<i>Y</i>.tgz (or
+    icu-<i>X</i>.<i>Y</i>.tar.gz) file. For example, <tt>"gunzip -d &lt;
+    icu-<i>X</i>.<i>Y</i>.tgz | tar xvf -"</tt></li>
+
+    <li>Change directory to the "icu/source".</li>
+
+    <li>Run <tt>"chmod +x runConfigureICU configure install-sh"</tt> because
+    these files may have the wrong permissions.</li>
+
+    <li>Run the <tt><a href="source/runConfigureICU">runConfigureICU</a></tt>
+    script for your platform. (See <a href="#HowToConfigureICU">configuration
+    note</a> below).</li>
+
+    <li>Type <tt>"gmake"</tt> (or "make" if GNU make is the default make on
+    your platform) to compile the libraries and all the data files. The
+    proper name of the GNU make command is printed at the end of the
+    configuration run, as in "You must use gmake to compile ICU".</li>
+
+    <li>Optionally, type <tt>"gmake 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>"gmake 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="HowToConfigureICU" id="HowToConfigureICU"><strong>Configuring
+  ICU NOTE:</strong></a> Type <tt>"./runConfigureICU --help"</tt> for help on
+  how to run it and a list of supported platforms. You may also want to type
+  <tt>"./configure --help"</tt> to print the available configure options that
+  you may want to give runConfigureICU. If you are not using the
+  runConfigureICU script, or your platform is not supported by the script,
+  you may need to set your CC, CXX, CFLAGS and CXXFLAGS environment
+  variables, and type <tt>"./configure"</tt>. Some of the more frequently
+  used options to configure are --disable-64bit-libs to create 32-bit
+  libraries, and --srcdir to do out of source builds (build the libraries in
+  the current location). HP-UX user's, please see this <a href=
+  "#ImportantNotesHPUX">note regarding multithreaded build issues</a> with
+  newer compilers. Solaris user's, please see this <a href=
+  "#ImportantNotesSolaris">note regarding multithreaded build issues</a>.</p>
+
+  <p><a name="HowToTestWithoutGmake" id=
+  "HowToTestWithoutGmake"><strong>Running The Tests From The Command Line
+  NOTE:</strong></a> You may have to set certain variables if you with to run
+  test programs individually, that is apart from "gmake check". The
+  environment variable <strong>ICU_DATA</strong> can be set to the full
+  pathname of the data directory to indicate where the locale data files and
+  conversion mapping tables are when you are not using the shared library
+  (e.g. by using the .dat archive or the individual data files). The trailing
+  "/" is required after the directory name (e.g. "$Root/source/data/out/"
+  will work, but the value "$Root/source/data/out" is not acceptable). You do
+  not need to set <strong>ICU_DATA</strong> if the complete shared data
+  library is in your library path.</p>
+
+  <p><a name="HowToInstallICU" id="HowToInstallICU"><strong>Installing ICU
+  NOTE:</strong></a> Some platforms use package management tools to control
+  the installation and uninstallation of files on the system, as well as the
+  integrity of the system configuration. You may want to check if ICU can be
+  packaged for your package management tools by looking into the "packaging"
+  directory. (Please note that if you are using a snapshot of ICU from CVS,
+  it is probable that the packaging scripts or related files are not up to
+  date with the contents of ICU at this time, so use them with caution).</p>
+
+  <h3><a name="HowToBuildZOS" href="#HowToBuildZOS" id="HowToBuildZOS">How To
+  Build And Install On z/OS (OS/390)</a></h3>
+
+  <p>You can install ICU on z/OS or OS/390 (the previous name of z/OS), but
+  IBM tests only the z/OS installation. These platforms commonly are called
+  "MVS". You install ICU in a z/OS UNIX system services file system such as
+  HFS or zFS. On this platform, it is important that you understand a few
+  details:</p>
+
+  <ul>
+    <li>APAR PQ58392 may be needed by z/OS 1.2 or 1.3 in order to get some
+    ICU number formatting functions to work properly. The APAR affects C and
+    C++ code.</li>
+
+    <li>The makedep executable that is used with the z/OS ICU build process
+    is not shipped with ICU. It is available at the <a href=
+    "http://www.ibm.com/servers/eserver/zseries/zos/unix/redbook/">z/OS
+    UNIX - Tools and Toys</a> site. The PATH environment variable should
+    be updated to contain the location of this executable prior to build.
+    Alternatively, makedep may be moved into an existing PATH directory.</li>
+
+    <li>The gnu utilities gmake and gzip/gunzip are needed and can be
+    obtained for z/OS from <a href=
+    "http://www.ibm.com/servers/eserver/zseries/zos/unix/redbook/">z/OS
+    UNIX - Tools and Toys</a>.</li>
+
+    <li>Since the default make on z/OS is not gmake, the pkgdata tool
+    requires that the "make" command is aliased to your installed version of
+    gmake. You may also need to set $MAKE equal to the fully qualified path
+    of GNU make. GNU make is available with the "z/OS UNIX - Tools and Toys"
+    that was mentioned above. ICU requires the same GNU make as described in
+    the UNIX build instructions.</li>
+
+    <li>Since USS does not support using the mmap() function over NFS, it is
+    recommended that you build ICU on a local filesystem. Once ICU has been
+    built, you should not have this problem while using ICU when the data
+    library has been built as a shared library, which is this is the default
+    setting.</li>
+
+    <li>Encoding considerations: The source code assumes that it is compiled
+    with codepage ibm-1047 (to be exact, the UNIX System Services variant of
+    it). The pax command converts all of the source code files from ASCII to
+    codepage ibm-1047 (USS) EBCDIC. However, some files are binary files and
+    must not be converted, or must be converted back to their original state.
+    You can use the <a href="as_is/os390/unpax-icu.sh">unpax-icu.sh</a>
+    script to do this for you automatically. It will unpackage the tar file
+    and convert all the necessary files for you automatically.</li>
+
+    <li>
+      <p>z/OS supports both native S/390 hexadecimal floating point and (with
+      OS/390 2.6 and later) IEEE 754 binary floating point. This is a compile
+      time option. Applications built with IEEE should use ICU DLLs that are
+      built with IEEE (and vice versa). The environment variable IEEE390=0
+      will cause the z/OS version of ICU to be built without IEEE floating
+      point support and use the native hexadecimal floating point. By default
+      ICU is built with IEEE 754 support.</p>
+
+      <p><em>Important:</em> Currently (ICU 1.4.2), native floating point
+      support is sufficient for codepage conversion, resource bundle and
+      UnicodeString operations, but the Format APIs require IEEE binary
+      floating point.</p>
+
+      <p>Examples for configuring ICU:<br>
+      Debug build: <code>./runConfigureICU --enable-debug zOS</code><br>
+      Release build: <code>./runConfigureICU zOS</code></p>
+    </li>
+
+    <li>
+      <p>z/OS introduced the concept of Extra Performance Linkage (XPLINK) to
+      bring performance improvement opportunities to call-intensive C and C++
+      applications such as ICU. XPLINK is enabled on a DLL-by-DLL basis, so
+      if you are considering using XPLINK in your application that uses ICU,
+      you should consider building the XPLINK-enabled version of ICU. You
+      need to set ICU's environment variable <code>OS390_XPLINK=1</code>
+      prior to invoking the make process to produce binaries that are enabled
+      for XPLINK.</p>
+
+      <p>Note: XPLINK, which is enabled for z/OS 1.2 and later, requires the
+      PTF PQ69418 to build XPLINK-enabled binaries.</p>
+    </li>
+
+    <li>
+      <p>When you build ICU on a system such as z/OS 1.2, the binaries that
+      result can run on that level of the operating system and later, such as
+      z/OS 1.3 and z/OS 1.4. It's possible that you may have a z/OS 1.4
+      system, but you may need to deliver binaries on z/OS 1.2 and above.
+      z/OS gives you this ability by targeting the complier and linker to run
+      at the older level, thereby producing the desired binaries.</p>
+
+      <p>To set the compiler and LE environment to OS/390 2.10, specify the
+      following, "<code>./runConfigureICU OS390V2R10</code>"</p>
+
+      <p>To set the compiler and LE environment to z/OS 1.2 specify the
+      following, "<code>./runConfigureICU zOSV1R2</code>"</p>
+    </li>
+
+    <li>The rest of the instructions for building and testing ICU on z/OS
+    with UNIX System Services are the same as the <a href=
+    "#HowToBuildUNIX">How To Build And Install On UNIX</a> section.</li>
+  </ul>
+
+  <h4>z/OS (Batch/PDS) support outside the UNIX system services
+  environment</h4>
+
+  <p>By default, ICU builds its libraries into the UNIX file system (HFS). In
+  addition, there is a z/OS specific environment variable (OS390BATCH) to
+  build some libraries into the z/OS native file system. This is useful, for
+  example, when your application is externalized via Job Control Language
+  (JCL).</p>
+
+  <p>The OS390BATCH environment variable enables non-UNIX support including
+  the batch environment. When OS390BATCH is set, the libicuuc<i>XX</i>.dll,
+  libicudt<i>XX</i>e.dll, and libicudt<i>XX</i>e_stub.dll binaries are built
+  into data sets (the native file system). Turning on OS390BATCH does not
+  turn off the normal z/OS UNIX build. This means that the z/OS UNIX (HFS)
+  DLLs will always be created.</p>
+
+  <p>Two additional environment variables indicate the names of the z/OS data
+  sets to use. The LOADMOD environment variable identifies the name of the
+  data set that contains the dynamic link libraries (DLLs) and the LOADEXP
+  environment variable identifies the name of the data set that contains the
+  side decks, which are normally the files with the .x suffix in the UNIX
+  file system.</p>
+
+  <p>A data set is roughly equivalent to a UNIX or Windows file. For most
+  kinds of data sets the operating system maintains record boundaries. UNIX
+  and Windows files are byte streams. Two kinds of data sets are PDS and
+  PDSE. Each data set of these two types contains a directory. It is like a
+  UNIX directory. Each "file" is called a "member". Each member name is
+  limited to eight bytes, normally EBCDIC.</p>
+
+  <p>Here is an example of some environment variables that you can set prior
+  to building ICU:</p>
+  <pre>
+<samp>OS390BATCH=1
+LOADMOD=<i>USER</i>.ICU.LOAD
+LOADEXP=<i>USER</i>.ICU.EXP</samp>
+</pre>
+
+  <p>The PDS member names for the DLL file names are as follows:</p>
+  <pre>
+<samp>IXMI<i>XX</i>IN --&gt; libicui18n<i>XX</i>.dll
+IXMI<i>XX</i>UC --&gt; libicuuc<i>XX</i>.dll
+IXMI<i>XX</i>DA --&gt; libicudt<i>XX</i>e.dll
+IXMI<i>XX</i>D1 --&gt; libicudt<i>XX</i>e_stub.dll <i>(Only when OS390_STUBDATA=1)</i></samp>
+</pre>
+
+  <p>You should point the LOADMOD environment variable at a partitioned data
+  set extended (PDSE) and point the LOADEXP environment variable at a
+  partitioned data set (PDS). The PDSE can be allocated with the following
+  attributes:</p>
+  <pre>
+<samp>Data Set Name . . . : <i>USER</i>.ICU.LOAD
+Management class. . : <i>**None**</i>
+Storage class . . . : <i>BASE</i>
+Volume serial . . . : <i>TSO007</i>
+Device type . . . . : <i>3390</i>
+Data class. . . . . : LOAD
+Organization  . . . : PO
+Record format . . . : U
+Record length . . . : 0
+Block size  . . . . : 32760
+1st extent cylinders: 1
+Secondary cylinders : 5
+Data set name type  : LIBRARY</samp>
+</pre>
+
+  <p>The PDS can be allocated with the following attributes:</p>
+  <pre>
+<samp>Data Set Name . . . : <i>USER</i>.ICU.EXP
+Management class. . : <i>**None**</i>
+Storage class . . . : <i>BASE</i>
+Volume serial . . . : <i>TSO007</i>
+Device type . . . . : <i>3390</i>
+Data class. . . . . : <i>**None**</i>
+Organization  . . . : PO
+Record format . . . : FB
+Record length . . . : 80
+Block size  . . . . : <i>3200</i>
+1st extent cylinders: 3
+Secondary cylinders : 3
+Data set name type  : PDS</samp>
+</pre>
+
+  <h3><a name="HowToBuildOS400" href="#HowToBuildOS400" id=
+  "HowToBuildOS400">How To Build And Install On OS/400 (iSeries)</a></h3>
+
+  <p>Before you start building ICU, ICU requires the following:</p>
+
+  <ul>
+    <li>QSHELL interpreter installed (install base option 30, operating
+    system) 
+    <!--li>QShell Utilities, PRPQ 5799-XEH (not required for V4R5)</li--></li>
+
+    <li>ILE C/C++ Compiler for iSeries, LPP 5722-WDS</li>
+
+    <li>The latest GNU facilities (You can get the GNU facilities for OS/400
+    from <a href=
+    "http://www.as400.ibm.com/developer/factory/porting/gnu_utilities.html">http://www.as400.ibm.com/developer/factory/porting/gnu_utilities.html</a>).
+    Older versions may not work properly.</li>
+  </ul>
+
+  <p>The following describes how to setup and build ICU. For background
+  information, you should look at the <a href="#HowToBuildUNIX">UNIX build
+  instructions</a>.</p>
+
+  <ol>
+    <li>Create AS400 target library. This library will be the target for the
+    resulting modules, programs and service programs. You will specify this
+    library on the OUTPUTDIR environment variable in step 2.<br>
+      <pre>
+<samp>CRTLIB LIB(<i>libraryname</i>)</samp>
+</pre><br>
+    </li>
+
+    <li>Set up the following environment variables in your build process (use
+    the <i>libraryname</i> from the previous step)
+      <pre>
+<samp>ADDENVVAR ENVVAR(CC) VALUE('/usr/bin/icc')
+ADDENVVAR ENVVAR(CXX) VALUE('/usr/bin/icc')
+ADDENVVAR ENVVAR(MAKE) VALUE('/usr/bin/gmake')
+ADDENVVAR ENVVAR(OUTPUTDIR) VALUE('<i>libraryname</i>')</samp>
+</pre><i>libraryname</i> identifies target as400 library for *module, *pgm
+and *srvpgm objects.<br>
+      <br>
+      <!--li>Add QCXXN, to your build process library list. This results in the resolution of CRTCPPMOD used by the icc compiler</li-->
+    </li>
+
+    <li>Run <tt>'CHGJOB CCSID(37)'</tt></li>
+
+    <li>Run <tt>'QSH'</tt></li>
+
+    <li>Run gunzip on the ICU source code compressed tar archive
+    (icu-<i>X</i>.<i>Y</i>.tgz or icu-<i>X</i>.<i>Y</i>.tar.gz).</li>
+
+    <li>Run unpax-icu.sh on the tar file from the ICU download page.</li>
+
+    <li>Change your current directory to icu/source.</li>
+
+    <li>Run <tt>'export CFLAGS=-O4 CXXFLAGS=-O4'</tt> to optimize your build
+    of ICU. If the build fails, rerun these build steps without this step
+    before asking the icu4c-support mailing list for help.</li>
+
+    <li>Run <tt>'cp ../as_is/os400/configure .'</tt></li>
+
+    <li>Run <tt>'./configure --host=as400-os400'</tt></li>
+
+    <li>Run <tt>'gmake'</tt> to build ICU.</li>
+
+    <li>Run <tt>'gmake check'</tt> to build the tests.</li>
+
+    <li>The "utility/MultithreadTest" test in intltest may have failed during
+    <tt>'gmake check'</tt>. In order to make this test pass, please use
+    <tt>'gmake check QIBM_MULTI_THREADED=Y'</tt> after you built the tests
+    with <tt>'gmake check'</tt> from the previous step. You can look at the
+    <a href=
+    "http://publib.boulder.ibm.com/iseries/v5r1/ic2924/index.htm?info/apis/concept4.htm">
+    iSeries Information Center</a> for more details.</li>
+  </ol><!-- end build environment -->
+
+  <h2><a name="HowToPackage" href="#HowToPackage" id="HowToPackage">How To
+  Package ICU</a></h2>
+
+  <p>There are many ways that a person can package ICU with their software
+  products. Usually only the libraries need to be considered for
+  packaging.</p>
+
+  <p>On UNIX, you should have used "<tt>gmake install</tt>" to make it easier
+  to develop and package ICU. The bin, lib and include directories are needed
+  to develop applications that use ICU. These directories will be created
+  relative to the "<tt>--prefix=</tt><i>dir</i>" configure option (See the
+  <a href="#HowToBuildUNIX">UNIX build instructions</a>). When ICU is built
+  on Windows, a similar directory structure is built.</p>
+
+  <p>When changes have been made to the standard ICU distribution, it is
+  recommended that at least one of the following guidelines be followed for
+  special packaging.</p>
+
+  <ol>
+    <li>Add a suffix name to the library names. This can be done with the
+    --with-library-suffix configure option.</li>
+
+    <li>The installation script should install the ICU libraries into the
+    application's directory.</li>
+  </ol>
+
+  <p>Following these guidelines prevents other applications that use a
+  standard ICU distribution from conflicting any libraries that you need. On
+  operating systems that do not have a standard C++ ABI (name mangling) for
+  compilers, it is recommended to do this special packaging anyway. More
+  details on customizing ICU are available in the <a href=
+  "http://oss.software.ibm.com/icu/userguide/index.html">User's Guide</a>.
+  The <a href="#SourceCode">ICU Source Code Organization</a> section of this
+  readme.html gives a more complete description of the libraries.</p>
+
+  <table border="1" cellpadding="3" summary=
+  "ICU has several libraries for you to use.">
+    <caption>
+      Here is an example of libraries that are frequently packaged.
+    </caption>
+
+    <tr>
+      <th scope="col">Library Name</th>
+
+      <th scope="col">Windows Filename</th>
+
+      <th scope="col">Linux Filename</th>
+
+      <th scope="col">Comment</th>
+    </tr>
+
+    <tr>
+      <td>Data Library</td>
+
+      <td>icudt<i>XY</i>l.dll</td>
+
+      <td>libicudata.so.<i>XY</i>.<i>Z</i></td>
+
+      <td>Data required by the Common and I18n libraries. There are many ways
+      to package and <a href=
+      "http://oss.software.ibm.com/icu/userguide/icudata.html">customize this
+      data</a>, but by default this is all you need.</td>
+    </tr>
+
+    <tr>
+      <td>Common Library</td>
+
+      <td>icuuc<i>XY</i>.dll</td>
+
+      <td>libicuuc.so.<i>XY</i>.<i>Z</i></td>
+
+      <td>Base library required by all other ICU libraries.</td>
+    </tr>
+
+    <tr>
+      <td>Internationalization (i18n) Library</td>
+
+      <td>icuin<i>XY</i>.dll</td>
+
+      <td>libicui18n.so.<i>XY</i>.<i>Z</i></td>
+
+      <td>A library that contains many locale based internationalization
+      (i18n) functions.</td>
+    </tr>
+
+    <tr>
+      <td>Layout Engine</td>
+
+      <td>icule<i>XY</i>.dll</td>
+
+      <td>libicule.so.<i>XY</i>.<i>Z</i></td>
+
+      <td>An optional engine for doing font layout.</td>
+    </tr>
+
+    <tr>
+      <td>Layout Extensions Engine</td>
+
+      <td>iculx<i>XY</i>.dll</td>
+
+      <td>libiculx.so.<i>XY</i>.<i>Z</i></td>
+
+      <td>An optional engine for doing font layout that uses parts of
+      ICU.</td>
+    </tr>
+
+    <tr>
+      <td>ICU I/O (Unicode stdio) Library</td>
+
+      <td>icuio<i>XY</i>.dll</td>
+
+      <td>libicuio.so.<i>XY</i>.<i>Z</i></td>
+
+      <td>An optional library that provides a stdio like API with Unicode
+      support.</td>
+    </tr>
+
+    <tr>
+      <td>Tool Utility Library</td>
+
+      <td>icutu<i>XY</i>.dll</td>
+
+      <td>libicutu.so.<i>XY</i>.<i>Z</i></td>
+
+      <td>An internal library that contains internal APIs that are only used
+      by ICU's tools. If you do not use ICU's tools, you do not need this
+      library.</td>
+    </tr>
+  </table>
+
+  <p>Normally only the above ICU libraries need to be considered for
+  packaging. The versionless symbolic links to these libraries are only
+  needed for easier development. The <i>X</i>, <i>Y</i> and <i>Z</i> parts of
+  the name are the version numbers of ICU. For example, ICU 2.0.2 would have
+  the name libicuuc.so.20.2 for the common library. The exact format of the
+  library names can vary between platforms due to how each platform can
+  handles library versioning.</p>
+
+  <h2><a name="ImportantNotes" href="#ImportantNotes" id=
+  "ImportantNotes">Important Notes About Using ICU</a></h2>
+
+  <h3><a name="ImportantNotesCPlusPlus" href="#ImportantNotesCPlusPlus" id=
+  "ImportantNotesCPlusPlus">Using ICU in a Multithreaded Environment</a></h3>
+
+  <p>Upon the first usage of most ICU APIs, the global mutex will get
+  initialized properly, but you can use the <code>u_init()</code> function
+  from uclean.h to ensure that it is initialized properly. Without calling
+  this function from a single thread, the data caches inside ICU may get
+  initialized more than once from multiple threads, which may cause memory
+  leaks and other problems. There is no harm in calling <code>u_init()</code>
+  in a single threaded application.</p>
+
+  <h4><a name="ImportantNotesHPUX" href="#ImportantNotesHPUX" id=
+  "ImportantNotesHPUX">Using ICU in a Multithreaded Environment on
+  HP-UX</a></h4>
+
+  <p>If you are building ICU with a newer aCC compiler and you are planning
+  on using the older &lt;iostream.h&gt; instead of the newer
+  &lt;iostream&gt;, you will need to use a special configure flag before
+  building ICU. By default, the aCC <a href=
+  "http://docs.hp.com/hpux/onlinedocs/dev/aCC/a_03_30/options.htm#optioncap-AA">
+  -AA</a> flag is used on HP-UX when the compiler supports that option in
+  order to make ICU thread safe with RogueWave and other libraries using the
+  2.0 Standard C++ library. Your applications that use ICU will also need to
+  use the <a href=
+  "http://docs.hp.com/hpux/onlinedocs/dev/aCC/a_03_30/options.htm#optioncap-AA">
+  -AA</a> compiler flag. To turn off this behavior in ICU, you will need to
+  use the --with-iostream= old configure option when you first use
+  runConfigureICU.</p>
+
+  <h4><a name="ImportantNotesSolaris" href="#ImportantNotesSolaris" id=
+  "ImportantNotesSolaris">Using ICU in a Multithreaded Environment on
+  Solaris</a></h4>
+
+  <h5>Solaris Deadlock Issues in Solaris 2.8, and Earlier</h5>
+
+  <p>Solaris 2.8, and earlier, has outstanding thread deadlocking issues that
+  MAY be problematic for applications using either native, or POSIX,
+  threading on these platforms. Sun states that Solaris 2.9 DOES NOT have the
+  deadlock problems. Deadlocks MAY occur either during initialization of the
+  Solaris threading library, or at any other time.</p>
+
+  <p>Sun Microsystems has provided a Sun Alert Notification regarding the
+  issue. Users SHOULD consider applying the latest OS patches to their
+  Solaris installations in order to help avoid deadlock. Further information
+  regarding the issue, and links to applicable patches, may be found at:</p>
+
+  <p>[1] "<i>Applications Linked to libthread May Hang</i>", Sun Alert
+  Notification, Sun Microsystems, Inc., 04-Sep-2002<br>
+  <a href=
+  "http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=fsalert%2F46867&amp;zone_32=4663077">
+  http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=fsalert%2F46867&amp;zone_32=4663077</a></p>
+
+  <p>Sun is NOT providing patches for Solaris 2.6, or earlier.</p>
+
+  <p>Sun states that by applying the patch users will avoid the deadlock
+  issues. However, with all applicable patches applied, deadlock MAY still be
+  seen, as demonstrated by the ICU Mutex unit tests. The unit test will hang
+  indefinitely. No bug exists in ICU. However, a latent bug still exists in
+  Solaris, which Sun Microsystems has yet to resolve. In order to avoid this,
+  users are SUGGESTED to modify their LD_LIBRARY_PATH according to the
+  guidelines specified by Sun Microsystems in the Sun Alert Notification.</p>
+
+  <h5>Linking on Solaris</h5>
+
+  <p>In order to avoid synchronization and threading issues, developers are
+  SUGGESTED to strictly follow the compiling and linking guidelines for
+  multithreaded applications, specified in the following document from Sun
+  Microsystems. Most notably, pay strict attention to the following
+  statements from Sun:</p>
+
+  <blockquote>
+    <p>To use libthread, specify -lthread before -lc on the ld command line,
+    or last on the cc command line.</p>
+
+    <p>To use libpthread, specify -lpthread before -lc on the ld command
+    line, or last on the cc command line.</p>
+  </blockquote>
+
+  <p>Failure to do this may cause spurious lock conflicts, recursive mutex
+  failure, and deadlock.</p>
+
+  <p>[2] "<i>Solaris Multithreaded Programming Guide, Compiling and
+  Debugging</i>", Sun Microsystems, Inc., Apr 2004<br>
+  <a href=
+  "http://docs.sun.com/db/doc/806-6867/6jfpgdcob?a=view">http://docs.sun.com/db/doc/806-6867/6jfpgdcob?a=view</a></p>
+
+  <h3><a name="ImportantNotesWindows" href="#ImportantNotesWindows" id=
+  "ImportantNotesWindows">Windows Platform</a></h3>
+
+  <p>If you are building on the Win32 platform, it is important that you
+  understand a few of the following build details.</p>
+
+  <h4>DLL directories and the PATH setting</h4>
+
+  <p>As delivered, the International Components for Unicode build as several
+  DLLs, which are placed in the "<i>&lt;ICU&gt;</i>\bin" directory. You must
+  add this directory to the PATH environment variable in your system, or any
+  executables you build will not be able to access International Components
+  for Unicode libraries. Alternatively, you can copy the DLL files into a
+  directory already in your PATH, but we do not recommend this. You can wind
+  up with multiple copies of the DLL and wind up using the wrong one.</p>
+
+  <h4><a name="ImportantNotesWindowsPath" id=
+  "ImportantNotesWindowsPath">Changing your PATH</a></h4>
+
+  <ul>
+    <li><strong>Windows 2000</strong>: Use the System Icon in the Control
+    Panel. Pick the "Advanced" tab. Select the "Environment Variables..."
+    button. Select the variable PATH in the lower box, and select the lower
+    "Edit..." button. In the "Variable Value" box, append the string
+    ";<i>&lt;ICU&gt;</i>\bin" to the end of the path string. If there is
+    nothing there, just type in "<i>&lt;ICU&gt;</i>\bin". Click the Set
+    button, then the OK button.</li>
+
+    <li><strong>Windows NT</strong>: Use the System Icon in the Control
+    Panel. Pick the "Environment" tab, and select the variable PATH in the
+    lower box. In the "value" box, append the string
+    ";<i>&lt;ICU&gt;</i>\bin" at the end of the path string. If there is
+    nothing there, just type in "<i>&lt;ICU&gt;</i>\bin". Click the Set
+    button, then the OK button.</li>
+
+    <li><strong>Windows 95/98/ME</strong>: Edit the autoexec.bat, and add the
+    following line to the end of file, "SET
+    PATH=%PATH%;<i>&lt;ICU&gt;</i>\bin"</li>
+  </ul>
+
+  <p>Note: When packaging a Windows application for distribution and
+  installation on user systems, copies of the ICU DLLs should be included
+  with the application, and installed for exclusive use by the application.
+  This is the only way to insure that your application is running with the
+  same version of ICU, built with exactly the same options, that you
+  developed and tested with. Refer to Microsoft's guidelines on the usage of
+  DLLs, or search for the phrase "DLL hell" on <a href=
+  "http://msdn.microsoft.com/">msdn.microsoft.com</a>.</p>
+
+  <h3><a name="ImportantNotesUNIX" href="#ImportantNotesUNIX" id=
+  "ImportantNotesUNIX">UNIX Type Platform</a></h3>
+
+  <p>If you are building on a UNIX platform, and if you are installing ICU in
+  a non-standard location, you may need to add the location of your ICU
+  libraries to your <strong>LD_LIBRARY_PATH</strong> or
+  <strong>LIBPATH</strong> environment variable (or the equivalent runtime
+  library path environment variable for your system). The ICU libraries may
+  not link or load properly without doing this.</p>
+
+  <p>Note that if you do not want to have to set this variable, you may
+  instead use the --enable-rpath option at configuration time. This option
+  will instruct the linker to always look for the libraries where they are
+  installed. You will need to use the appropriate linker options when linking
+  your own applications and libraries against ICU, too. Please refer to your
+  system's linker manual for information about runtime paths. The use of
+  rpath also means that when building a new version of ICU you should not
+  have an older version installed in the same place as the new version's
+  installation directory, as the older libraries will used during the build,
+  instead of the new ones, likely leading to an incorrectly build ICU. (This
+  is the proper behavior of rpath.)</p>
+
+  <h2><a name="PlatformDependencies" href="#PlatformDependencies" id=
+  "PlatformDependencies">Platform Dependencies</a></h2>
+
+  <h3><a name="PlatformDependenciesNew" href="#PlatformDependenciesNew" id=
+  "PlatformDependenciesNew">Porting To A New Platform</a></h3>
+
+  <p>If you are using ICU's Makefiles to build ICU on a new platform, there
+  are a few places where you will need to add or modify some files. If you
+  need more help, you can always ask the <a href=
+  "http://oss.software.ibm.com/icu/archives/">icu4c-support mailing list</a>.
+  Once you have finished porting ICU to a new platform, it is recommended
+  that you contribute your changes back to ICU via the icu4c-support mailing
+  list. This will make it easier for everyone to benefit from your work.</p>
+
+  <h4>Data For a New Platform</h4>
+
+  <p>For some people, it may not be necessary for completely build ICU. Most
+  of the makefiles and build targets are for tools that are used for building
+  ICU's data, and an application's data (when an application uses ICU
+  resource bundles for its data).</p>
+
+  <p>Data files can be built on a different platform when both platforms
+  share the same endianness and the same charset family. This assertion does
+  not include platform dependent DLLs/shared/static libraries. For details
+  see the User Guide <a href=
+  "http://oss.software.ibm.com/icu/userguide/icudata.html">ICU Data</a>
+  chapter.</p>
+
+  <p>ICU 2.8 removes the requirement that ICU be completely built in the
+  native operating environment. It adds the icuswap tool which can be run on
+  any platform to turn binary ICU data files from any one of the three
+  formats into any one of the other data formats. This allows a application
+  to use ICU data built anywhere to be used for any other target
+  platform.</p>
+
+  <p><strong>WARNING!</strong> Building ICU without running the tests is not
+  recommended. The tests verify that ICU is safe to use. It is recommended
+  that you try to completely port and test ICU before using the libraries for
+  your own application.</p>
+
+  <h4>Adapting Makefiles For a New Platform</h4>
+
+  <p>Try to follow the build steps from the <a href=
+  "#HowToBuildUNIX">UNIX</a> build instructions. If the configure script
+  fails, then you will need to modify some files. Here are the usual steps
+  for porting to a new platform:<br></p>
+
+  <ol>
+    <li>Create an mh file in icu/source/config/. You can use mh-linux or a
+    similar mh file as your base configuration.</li>
+
+    <li>Modify icu/source/aclocal.m4 to recognize your platform's mh
+    file.</li>
+
+    <li>Modify icu/source/configure.in to properly set your <b>platform</b> C
+    Macro define.</li>
+
+    <li>Run <a href="http://www.gnu.org/software/autoconf/">autoconf</a> in
+    icu/source/ without any options. The autoconf tool is standard on most
+    Linux systems.</li>
+
+    <li>If you have any optimization options that you want to normally use,
+    you can modify icu/source/runConfigureICU to specify those options for
+    your platform.</li>
+
+    <li>Build and test ICU on your platform. It is very important that you
+    run the tests. If you don't run the tests, there is no guarentee that you
+    have properly ported ICU.</li>
+  </ol>
+
+  <h3><a name="PlatformDependenciesImpl" href="#PlatformDependenciesImpl" id=
+  "PlatformDependenciesImpl">Platform Dependent Implementations</a></h3>
+
+  <p>The platform dependencies have been mostly isolated into the following
+  files in the common library. This information can be useful if you are
+  porting ICU to a new platform.</p>
+
+  <ul>
+    <li>
+      <strong>unicode/platform.h.in</strong> (autoconf'ed platforms)<br>
+      <strong>unicode/p<i>XXXX</i>.h</strong> (others: pwin32.h, pmacos.h,
+      ..): Platform-dependent typedefs and defines:<br>
+      <br>
+
+      <ul>
+        <li>XP_CPLUSPLUS for C++ only.</li>
+
+        <li>TRUE and FALSE, UBool, int8_t, int16_t etc.</li>
+
+        <li>U_EXPORT and U_IMPORT for specifying dynamic library import and
+        export</li>
+
+        <li>int64_t and uint64_t. If the platform does not support 64 bit
+        values, the macro <tt>U_INT64_T_UNAVAILABLE</tt> must be defined. For
+        example, this will disable Rule-based number formatting.</li>
+      </ul><br>
+    </li>
+
+    <li>
+      <strong>unicode/putil.h, putil.c</strong>: platform-dependent
+      implementations of various functions that are platform dependent:<br>
+      <br>
+
+      <ul>
+        <li>uprv_isNaN, uprv_isInfinite, uprv_getNaN and uprv_getInfinity for
+        handling special floating point values.</li>
+
+        <li>uprv_tzset, uprv_timezone, uprv_tzname and time for getting
+        platform specific time and time zone information.</li>
+
+        <li>u_getDataDirectory for getting the default data directory.</li>
+
+        <li>uprv_getDefaultLocaleID for getting the default locale
+        setting.</li>
+
+        <li>uprv_getDefaultCodepage for getting the default codepage
+        encoding.</li>
+      </ul><br>
+    </li>
+
+    <li>
+      <strong>umutex.h, umutex.c</strong>: Code for doing synchronization in
+      multithreaded applications. If you wish to use International Components
+      for Unicode in a multithreaded application, you must provide a
+      synchronization primitive that the classes can use to protect their
+      global data against simultaneous modifications. See Users' guide for
+      more information.<br>
+      <br>
+
+      <ul>
+        <li>We supply sample implementations for WinNT, Win95, Win98,
+        Sun/Solaris, RedHat/Linux, HP-UX and for AIX on an RS/6000.</li>
+      </ul><br>
+    </li>
+
+    <li><strong>umapfile.h, umapfile.c</strong>: functions for mapping or
+    otherwise reading or loading files into memory. All access by ICU to data
+    from files makes use of these functions.<br>
+    <br></li>
+
+    <li>Using platform specific #ifdef macros are highly discouraged outside
+    of the scope of these files. When the source code gets updated in the
+    future, these #ifdef's can cause testing problems for your platform.</li>
+  </ul>
+
+  <h3><a name="PlatformDependenciesBuildOrder" href=
+  "#PlatformDependenciesBuildOrder" id="PlatformDependenciesBuildOrder">Build
+  Order Without Using ICU's Makefiles</a></h3>
+
+  <p>It is possible to build each library individually without our Makefiles.
+  They must be built in the following order:<br></p>
+
+  <ol>
+    <li>stubdata</li>
+
+    <li>common</li>
+
+    <li>i18n</li>
+
+    <li>toolutil</li>
+
+    <li>makeconv</li>
+
+    <li>gencnval</li>
+
+    <li>genprops</li>
+
+    <li>gennames</li>
+
+    <li>genpname</li>
+
+    <li>gennorm</li>
+
+    <li>gensprep</li>
+
+    <li>genbrk</li>
+
+    <li>genuca</li>
+
+    <li>genrb</li>
+
+    <li>genccode</li>
+
+    <li>gencmn</li>
+
+    <li>pkgdata</li>
+
+    <li>makedata (a project on Windows, or source/data/Makefile on UNIX)</li>
+
+    <li>layout (optional)</li>
+
+    <li>layoutex (optional)</li>
+
+    <li>ctestfw, intltest and cintltst, if you want to run the test
+    suite.</li>
+
+    <li>uconv, icuswap and icuio (ustdio) can also be optionally built.</li>
+  </ol>
+  <hr>
+
+  <p>Copyright &copy; 1997-2004 International Business Machines Corporation
+  and others. All Rights Reserved.<br>
+  IBM Globalization Center of Competency - San Jos&eacute;<br>
+  5600 Cottle Road<br>
+  San Jos&eacute;, CA 95193<br>
+  USA</p>
+</body>
+</html>
diff --git a/source/.cvsignore b/source/.cvsignore
new file mode 100644
index 0000000..358be46
--- /dev/null
+++ b/source/.cvsignore
@@ -0,0 +1,8 @@
+config.log
+config.cache
+config.status
+Makefile
+icudefs.mk
+README
+bin
+lib
diff --git a/source/Doxyfile.in b/source/Doxyfile.in
new file mode 100644
index 0000000..a72a66a
--- /dev/null
+++ b/source/Doxyfile.in
@@ -0,0 +1,791 @@
+#  ********************************************************************
+#  * COPYRIGHT:
+#  * Copyright (c) 2002, International Business Machines Corporation and
+#  * others. All Rights Reserved.
+#  ********************************************************************
+# Doxyfile 1.2.6
+
+# This file describes the settings to be used by doxygen for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+#       TAG = value [value, ...]
+# For lists items can also be appended using:
+#       TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# General configuration options
+#---------------------------------------------------------------------------
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
+# by quotes) that should identify the project. 
+
+PROJECT_NAME           = "ICU @VERSION@"
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
+# This could be handy for archiving the generated documentation or 
+# if some version control system is used.
+
+PROJECT_NUMBER         = 
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
+# base path where the generated documentation will be put. 
+# If a relative path is entered, it will be relative to the location 
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = doc
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
+# documentation generated by doxygen is written. Doxygen will use this 
+# information to generate all constant output in the proper language. 
+# The default language is English, other supported languages are: 
+# Dutch, French, Italian, Czech, Swedish, German, Finnish, Japanese, 
+# Korean, Hungarian, Norwegian, Spanish, Romanian, Russian, Croatian, 
+# Polish, Portuguese and Slovene.
+
+OUTPUT_LANGUAGE        = English
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
+# documentation are documented, even if no documentation was available. 
+# Private class members and static file members will be hidden unless 
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES 
+
+EXTRACT_ALL            = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
+# will be included in the documentation. 
+
+EXTRACT_PRIVATE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file 
+# will be included in the documentation. 
+
+EXTRACT_STATIC         = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
+# undocumented members of documented classes, files or namespaces. 
+# If set to NO (the default) these members will be included in the 
+# various overviews, but no documentation section is generated. 
+# This option has no effect if EXTRACT_ALL is enabled. 
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
+# undocumented classes that are normally visible in the class hierarchy. 
+# If set to NO (the default) these class will be included in the various 
+# overviews. This option has no effect if EXTRACT_ALL is enabled. 
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
+# include brief member descriptions after the members that are listed in 
+# the file and class documentation (similar to JavaDoc). 
+# Set to NO to disable this. 
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
+# the brief description of a member or function before the detailed description. 
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
+# brief descriptions will be completely suppressed. 
+
+REPEAT_BRIEF           = YES
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
+# Doxygen will generate a detailed section even if there is only a brief 
+# description. 
+
+ALWAYS_DETAILED_SEC    = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
+# path before files name in the file list and in the header files. If set 
+# to NO the shortest path that makes the file name unique will be used. 
+
+FULL_PATH_NAMES        = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
+# can be used to strip a user defined part of the path. Stripping is 
+# only done if one of the specified strings matches the left-hand part of 
+# the path. It is allowed to use relative paths in the argument list.
+
+STRIP_FROM_PATH        = 
+
+# The INTERNAL_DOCS tag determines if documentation 
+# that is typed after a \internal command is included. If the tag is set 
+# to NO (the default) then the documentation will be excluded. 
+# Set it to YES to include the internal documentation. 
+
+INTERNAL_DOCS          = YES
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
+# generate a class diagram (in Html and LaTeX) for classes with base or 
+# super classes. Setting the tag to NO turns the diagrams off. 
+
+CLASS_DIAGRAMS         = YES
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
+# be generated. Documented entities will be cross-referenced with these sources. 
+
+SOURCE_BROWSER         = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body 
+# of functions and classes directly in the documentation. 
+
+INLINE_SOURCES         = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
+# doxygen to hide any special comment blocks from generated source code 
+# fragments. Normal C and C++ comments will always remain visible. 
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
+# file names in lower case letters. If set to YES upper case letters are also 
+# allowed. This is useful if you have classes or files whose names only differ 
+# in case and if your file system supports case sensitive file names. Windows 
+# users are adviced to set this option to NO.
+
+CASE_SENSE_NAMES       = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
+# will show members with their full class and namespace scopes in the 
+# documentation. If set to YES the scope will be hidden. 
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
+# will generate a verbatim copy of the header file for each class for 
+# which an include is specified. Set to NO to disable this. 
+
+VERBATIM_HEADERS       = YES
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
+# will put list of the files that are included by a file in the documentation 
+# of that file. 
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
+# will interpret the first line (until the first dot) of a JavaDoc-style 
+# comment as the brief description. If set to NO, the JavaDoc 
+# comments  will behave just like the Qt-style comments (thus requiring an 
+# explict @brief command for a brief description. 
+
+JAVADOC_AUTOBRIEF      = YES
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
+# member inherits the documentation from any documented member that it 
+# reimplements. 
+
+INHERIT_DOCS           = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
+# is inserted in the documentation for inline members. 
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
+# will sort the (detailed) documentation of file and class members 
+# alphabetically by member name. If set to NO the members will appear in 
+# declaration order. 
+
+SORT_MEMBER_DOCS       = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
+# tag is set to YES, then doxygen will reuse the documentation of the first 
+# member in the group (if any) for the other members of the group. By default 
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
+# Doxygen uses this value to replace tabs by spaces in code fragments. 
+
+TAB_SIZE               = 8
+
+# The ENABLE_SECTIONS tag can be used to enable conditional 
+# documentation sections, marked by \if sectionname ... \endif. 
+
+ENABLED_SECTIONS       = 
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or 
+# disable (NO) the todo list. This list is created by putting \todo 
+# commands in the documentation.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or 
+# disable (NO) the test list. This list is created by putting \test 
+# commands in the documentation.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or 
+# disable (NO) the bug list. This list is created by putting \bug 
+# commands in the documentation.
+
+GENERATE_BUGLIST       = YES
+
+# This tag can be used to specify a number of aliases that acts 
+# as commands in the documentation. An alias has the form "name=value". 
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
+# put the command \sideeffect (or @sideeffect) in the documentation, which 
+# will result in a user defined paragraph with heading "Side Effects:". 
+# You can put \n's in the value part of an alias to insert newlines. 
+
+ALIASES                = 
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
+# the initial value of a variable or define consist of for it to appear in 
+# the documentation. If the initializer consists of more lines than specified 
+# here it will be hidden. Use a value of 0 to hide initializers completely. 
+# The appearance of the initializer of individual variables and defines in the 
+# documentation can be controlled using \showinitializer or \hideinitializer 
+# command in the documentation regardless of this setting. 
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources 
+# only. Doxygen will then generate output that is more tailored for C. 
+# For instance some of the names that are used will be different. The list 
+# of all members will be omitted, etc. 
+
+OPTIMIZE_OUTPUT_FOR_C  = YES
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
+# at the bottom of the documentation of classes and structs. If set to YES the 
+# list will mention the files that were used to generate the documentation. 
+
+SHOW_USED_FILES        = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated 
+# by doxygen. Possible values are YES and NO. If left blank NO is used. 
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are 
+# generated by doxygen. Possible values are YES and NO. If left blank 
+# NO is used. 
+
+WARNINGS               = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
+# automatically be disabled. 
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# The WARN_FORMAT tag determines the format of the warning messages that 
+# doxygen can produce. The string should contain the $file, $line, and $text 
+# tags, which will be replaced by the file and line number from which the 
+# warning originated and the warning text. 
+
+WARN_FORMAT            = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning 
+# and error messages should be written. If left blank the output is written 
+# to stderr. 
+
+WARN_LOGFILE           = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain 
+# documented source files. You may enter file names like "myfile.cpp" or 
+# directories like "/usr/src/myproject". Separate the files or directories 
+# with spaces. 
+
+INPUT                  = ./common/unicode/platform.h @srcdir@/common/unicode @srcdir@/i18n/unicode @srcdir@/layout/unicode
+
+# If the value of the INPUT tag contains directories, you can use the 
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank all files are included. 
+
+FILE_PATTERNS          = *.h *.c *.cpp
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
+# should be searched for input files as well. Possible values are YES and NO. 
+# If left blank NO is used. 
+
+RECURSIVE              = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should 
+# excluded from the INPUT source files. This way you can easily exclude a 
+# subdirectory from a directory tree whose root is specified with the INPUT tag. 
+EXCLUDE                = @srcdir@/common/unicode/urename.h
+
+# If the value of the INPUT tag contains directories, you can use the 
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
+# certain files from those directories. 
+
+EXCLUDE_PATTERNS       = *config*.h
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or 
+# directories that contain example code fragments that are included (see 
+# the \include command). 
+
+EXAMPLE_PATH           = 
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank all files are included. 
+
+EXAMPLE_PATTERNS       = 
+
+# The IMAGE_PATH tag can be used to specify one or more files or 
+# directories that contain image that are included in the documentation (see 
+# the \image command). 
+
+IMAGE_PATH             = 
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should 
+# invoke to filter for each input file. Doxygen will invoke the filter program 
+# by executing (via popen()) the command <filter> <input-file>, where <filter> 
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
+# input file. Doxygen will then use the output that the filter program writes 
+# to standard output. 
+
+INPUT_FILTER           = 
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
+# INPUT_FILTER) will be used to filter the input files when producing source 
+# files to browse. 
+
+FILTER_SOURCE_FILES    = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
+# of all compounds will be generated. Enable this if the project 
+# contains a lot of classes, structs, unions or interfaces. 
+
+ALPHABETICAL_INDEX     = YES
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
+# in which this list will be split (can be a number in the range [1..20]) 
+
+COLS_IN_ALPHA_INDEX    = 5
+
+# In case all classes in a project start with a common prefix, all 
+# classes will be put under the same header in the alphabetical index. 
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
+# should be ignored while generating the index headers. 
+
+IGNORE_PREFIX          = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
+# generate HTML output. 
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `html' will be used as the default path. 
+
+HTML_OUTPUT            = html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard header.
+
+HTML_HEADER            = 
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard footer.
+
+HTML_FOOTER            = 
+
+# The HTML_STYLESHEET tag can be used to specify a user defined cascading 
+# style sheet that is used by each HTML page. It can be used to 
+# fine-tune the look of the HTML output. If the tag is left blank doxygen 
+# will generate a default style sheet 
+
+HTML_STYLESHEET        = 
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
+# files or namespaces will be aligned in HTML using tables. If set to 
+# NO a bullet list will be used. 
+
+HTML_ALIGN_MEMBERS     = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
+# will be generated that can be used as input for tools like the 
+# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) 
+# of the generated HTML documentation. 
+
+GENERATE_HTMLHELP      = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
+# controls if a separate .chi index file is generated (YES) or that 
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI           = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
+# controls whether a binary table of contents is generated (YES) or a 
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set YES to add extra items for group members 
+# to the contents of the Html help documentation and to the tree view. 
+
+TOC_EXPAND             = NO
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
+# top of each HTML page. The value NO (the default) enables the index and 
+# the value YES disables it. 
+
+DISABLE_INDEX          = NO
+
+# This tag can be used to set the number of enum values (range [1..20]) 
+# that doxygen will group on one line in the generated HTML documentation. 
+
+ENUM_VALUES_PER_LINE   = 4
+
+# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
+# generated containing a tree-like index structure (just like the one that 
+# is generated for HTML Help). For this to work a browser that supports 
+# JavaScript and frames is required (for instance Netscape 4.0+ 
+# or Internet explorer 4.0+). 
+
+GENERATE_TREEVIEW      = NO
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
+# used to set the initial width (in pixels) of the frame in which the tree 
+# is shown. 
+
+TREEVIEW_WIDTH         = 250
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
+# generate Latex output. 
+
+GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `latex' will be used as the default path. 
+
+LATEX_OUTPUT           = latex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
+# LaTeX documents. This may be useful for small projects and may help to 
+# save some trees in general. 
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used 
+# by the printer. Possible values are: a4, a4wide, letter, legal and 
+# executive. If left blank a4wide will be used. 
+
+PAPER_TYPE             = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
+# packages that should be included in the LaTeX output. 
+
+EXTRA_PACKAGES         = 
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
+# the generated latex document. The header should contain everything until 
+# the first chapter. If it is left blank doxygen will generate a 
+# standard header. Notice: only use this tag if you know what you are doing! 
+
+LATEX_HEADER           = 
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
+# contain links (just like the HTML output) instead of page references 
+# This makes the output suitable for online browsing using a pdf viewer. 
+
+PDF_HYPERLINKS         = NO
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
+# plain latex in the generated Makefile. Set this option to YES to get a 
+# higher quality PDF documentation. 
+
+USE_PDFLATEX           = NO
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
+# command to the generated LaTeX files. This will instruct LaTeX to keep 
+# running if errors occur, instead of asking the user for help. 
+# This option is also used when generating formulas in HTML. 
+
+LATEX_BATCHMODE        = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
+# The RTF output is optimised for Word 97 and may not look very pretty with 
+# other RTF readers or editors.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `rtf' will be used as the default path. 
+
+RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
+# RTF documents. This may be useful for small projects and may help to 
+# save some trees in general. 
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
+# will contain hyperlink fields. The RTF file will 
+# contain links (just like the HTML output) instead of page references. 
+# This makes the output suitable for online browsing using a WORD or other. 
+# programs which support those fields. 
+# Note: wordpad (write) and others do not support links. 
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's 
+# config file, i.e. a series of assigments. You only have to provide 
+# replacements, missing definitions are set to their default value. 
+
+RTF_STYLESHEET_FILE    = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
+# generate man pages 
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `man' will be used as the default path. 
+
+MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to 
+# the generated man pages (default is the subroutine's section .3) 
+
+MAN_EXTENSION          = .3
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
+# evaluate all C-preprocessor directives found in the sources and include 
+# files. 
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
+# names in the source code. If set to NO (the default) only conditional 
+# compilation will be performed. Macro expansion can be done in a controlled 
+# way by setting EXPAND_ONLY_PREDEF to YES. 
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
+# then the macro expansion is limited to the macros specified with the 
+# PREDEFINED and EXPAND_AS_PREDEFINED tags. 
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
+# in the INCLUDE_PATH (see below) will be search if a #include is found. 
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that 
+# contain include files that are not input files but should be processed by 
+# the preprocessor. 
+
+INCLUDE_PATH           = 
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
+# patterns (like *.h and *.hpp) to filter out the header-files in the 
+# directories. If left blank, the patterns specified with FILE_PATTERNS will 
+# be used. 
+
+INCLUDE_FILE_PATTERNS  = 
+
+# The PREDEFINED tag can be used to specify one or more macro names that 
+# are defined before the preprocessor is started (similar to the -D option of 
+# gcc). The argument of the tag is a list of macros of the form: name 
+# or name=definition (no spaces). If the definition and the = are 
+# omitted =1 is assumed. 
+
+PREDEFINED             = 
+
+# If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then 
+# this tag can be used to specify a list of macro names that should be expanded. 
+# The macro definition that is found in the sources will be used. 
+# Use the PREDEFINED tag if you want to use a different macro definition. 
+
+EXPAND_AS_DEFINED      = 
+
+#---------------------------------------------------------------------------
+# Configuration::addtions related to external references   
+#---------------------------------------------------------------------------
+
+# The TAGFILES tag can be used to specify one or more tagfiles. 
+
+TAGFILES               = 
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
+# a tag file that is based on the input files it reads. 
+
+GENERATE_TAGFILE       = 
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
+# in the class index. If set to NO only the inherited external classes 
+# will be listed. 
+
+ALLEXTERNALS           = NO
+
+# The PERL_PATH should be the absolute path and name of the perl script 
+# interpreter (i.e. the result of `which perl'). 
+
+PERL_PATH              = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
+# available from the path. This tool is part of Graphviz, a graph visualization 
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
+# have no effect if this option is set to NO (the default) 
+
+HAVE_DOT               = NO
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect inheritance relations. Setting this tag to YES will force the 
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect implementation dependencies (inheritance, containment, and 
+# class references variables) of the class with other documented classes. 
+
+COLLABORATION_GRAPH    = YES
+
+# If the ENABLE_PREPROCESSING, INCLUDE_GRAPH, and HAVE_DOT tags are set to 
+# YES then doxygen will generate a graph for each documented file showing 
+# the direct and indirect include dependencies of the file with other 
+# documented files. 
+
+INCLUDE_GRAPH          = YES
+
+# If the ENABLE_PREPROCESSING, INCLUDED_BY_GRAPH, and HAVE_DOT tags are set to 
+# YES then doxygen will generate a graph for each documented header file showing 
+# the documented files that directly or indirectly include this file 
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
+# will graphical hierarchy of all classes instead of a textual one. 
+
+GRAPHICAL_HIERARCHY    = YES
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be 
+# found. If left blank, it is assumed the dot tool can be found on the path. 
+
+DOT_PATH               = 
+
+# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width 
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
+# this value, doxygen will try to truncate the graph, so that it fits within 
+# the specified constraint. Beware that most browsers cannot cope with very 
+# large images. 
+
+MAX_DOT_GRAPH_WIDTH    = 1024
+
+# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height 
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
+# this value, doxygen will try to truncate the graph, so that it fits within 
+# the specified constraint. Beware that most browsers cannot cope with very 
+# large images. 
+
+MAX_DOT_GRAPH_HEIGHT   = 1024
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
+# generate a legend page explaining the meaning of the various boxes and 
+# arrows in the dot generated graphs. 
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
+# remove the intermedate dot files that are used to generate 
+# the various graphs. 
+
+DOT_CLEANUP            = YES
+
+#---------------------------------------------------------------------------
+# Configuration::addtions related to the search engine   
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be 
+# used. If set to NO the values of all tags below this one will be ignored. 
+
+SEARCHENGINE           = NO
+
+# The CGI_NAME tag should be the name of the CGI script that 
+# starts the search engine (doxysearch) with the correct parameters. 
+# A script with this name will be generated by doxygen. 
+
+CGI_NAME               = search.cgi
+
+# The CGI_URL tag should be the absolute URL to the directory where the 
+# cgi binaries are located. See the documentation of your http daemon for 
+# details. 
+
+CGI_URL                = 
+
+# The DOC_URL tag should be the absolute URL to the directory where the 
+# documentation is located. If left blank the absolute path to the 
+# documentation, with file:// prepended to it, will be used. 
+
+DOC_URL                = 
+
+# The DOC_ABSPATH tag should be the absolute path to the directory where the 
+# documentation is located. If left blank the directory on the local machine 
+# will be used. 
+
+DOC_ABSPATH            = 
+
+# The BIN_ABSPATH tag must point to the directory where the doxysearch binary 
+# is installed. 
+
+BIN_ABSPATH            = /usr/local/bin/
+
+# The EXT_DOC_PATHS tag can be used to specify one or more paths to 
+# documentation generated for other projects. This allows doxysearch to search 
+# the documentation for these projects as well. 
+
+EXT_DOC_PATHS          = 
diff --git a/source/Makefile.in b/source/Makefile.in
new file mode 100644
index 0000000..fe63a20
--- /dev/null
+++ b/source/Makefile.in
@@ -0,0 +1,203 @@
+#******************************************************************************
+#
+#   Copyright (C) 1998-2004, International Business Machines
+#   Corporation and others.  All Rights Reserved.
+#
+#******************************************************************************
+## Top-level Makefile.in for ICU
+## Stephen F. Booth
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+
+top_builddir = .
+
+include $(top_builddir)/icudefs.mk
+
+docdir = $(datadir)/doc
+docsubdir = $(PACKAGE)$(ICULIBDASHSUFFIX)/html
+
+##
+
+## Build directory information
+subdir = .
+
+#AUTOCONF = @AUTOCONF@
+
+## Optional directory setup
+@LAYOUT_TRUE@LAYOUT = layout layoutex
+@ICUIO_TRUE@ICUIO = io
+@EXTRAS_TRUE@EXTRA = extra
+@TESTS_TRUE@TEST = test
+@SAMPLES_TRUE@SAMPLE = samples
+
+DOXYGEN = @DOXYGEN@
+
+## Files to remove for 'make clean'
+CLEANFILES = *~ 
+
+## Files built (autoconfed) and installed
+INSTALLED_BUILT_FILES = $(top_builddir)/config/Makefile.inc $(top_builddir)/config/icu-config @platform_make_fragment@ $(EXTRA_DATA:%=$(DESTDIR)$(pkglibdir)/%)
+
+## Files built (autoconfed) but not installed
+LOCAL_BUILT_FILES = icudefs.mk
+
+DOCDIRS = common i18n
+SUBDIRS =  stubdata common i18n $(LAYOUT) tools data $(ICUIO) $(EXTRA) $(SAMPLE) $(TEST)
+
+SECTION = 1
+
+MANX_FILES = config/icu-config.$(SECTION)
+
+ALL_MAN_FILES = $(MANX_FILES)
+
+## Extra files to install [nothing at present]
+EXTRA_DATA =
+
+## List of phony targets
+.PHONY : all all-local all-recursive install install-local install-udata install-udata-files install-udata-dlls		\
+install-recursive clean clean-local clean-recursive distclean		\
+distclean-local distclean-recursive doc dist dist-local dist-recursive	\
+check check-local check-recursive clean-recursive-with-twist install-icu \
+doc install-doc
+
+## Clear suffix list
+.SUFFIXES :
+
+## List of standard targets
+all: all-local all-recursive
+install: install-recursive install-local
+clean: clean-recursive-with-twist clean-local
+distclean : distclean-recursive distclean-local
+dist: dist-recursive dist-local
+check: all check-recursive check-local
+check-recursive: all
+
+ifeq ($(DOXYGEN),)
+doc:
+	@echo you need Doxygen to generate documentation. Doxygen can be found on the Web
+	@echo at http://www.doxygen.org/
+else
+doc: doc/html/index.html
+
+doc/html/index.html: Doxyfile $(wildcard ./common/unicode/platform.h $(srcdir)/common/unicode/*.h $(srcdir)/i18n/unicode/*.h $(srcdir)/layout/unicode/*.h $(srcdir)/io/unicode/*.h)
+	$(DOXYGEN)
+
+Doxyfile: $(srcdir)/Doxyfile.in
+	CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
+endif
+
+LOCAL_SUBDIRS = $(SUBDIRS)
+CLEAN_FIRST_SUBDIRS = tools
+
+$(LIBDIR) $(BINDIR):
+	-$(MKINSTALLDIRS) $@
+
+## Recursive targets
+all-recursive install-recursive clean-recursive distclean-recursive dist-recursive check-recursive: $(LIBDIR) $(BINDIR)
+	@dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(LOCAL_SUBDIRS)'; for subdir in $$list; do \
+	  echo "$(MAKE)[$(MAKELEVEL)]: Making \`$$target' in \`$$subdir'"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-local"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) RECURSIVE=YES $$local_target) || exit; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) "$$target-local" || exit; \
+	fi
+
+clean-recursive-with-twist:
+	$(MAKE) clean-recursive LOCAL_SUBDIRS='$(CLEAN_FIRST_SUBDIRS) $(filter-out $(CLEAN_FIRST_SUBDIRS),$(LOCAL_SUBDIRS))'
+
+all-local: $(srcdir)/configure $(LOCAL_BUILT_FILES) $(INSTALLED_BUILT_FILES)
+
+install-local: install-icu install-manx
+
+install-icu: $(INSTALLED_BUILT_FILES)
+	@$(MKINSTALLDIRS) $(DESTDIR)$(pkgdatadir)/config
+	@$(MKINSTALLDIRS) $(DESTDIR)$(pkglibdir)
+	@$(MKINSTALLDIRS) $(DESTDIR)$(bindir)
+	@$(MKINSTALLDIRS) $(DESTDIR)$(sbindir)
+	$(INSTALL_DATA) $(top_builddir)/config/Makefile.inc $(DESTDIR)$(pkglibdir)/Makefile.inc
+	cd $(DESTDIR)$(pkglibdir)/..; \
+	    $(RM) current && ln -s $(VERSION) current; \
+	    $(RM) Makefile.inc && ln -s current/Makefile.inc .
+	$(INSTALL_DATA) @platform_make_fragment@ $(DESTDIR)$(pkgdatadir)/config/@platform_make_fragment_name@
+	$(INSTALL_SCRIPT) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(pkgdatadir)/mkinstalldirs
+	$(INSTALL_DATA) $(top_srcdir)/../license.html $(DESTDIR)$(pkgdatadir)/license.html
+	$(INSTALL_SCRIPT) $(top_builddir)/config/icu-config $(DESTDIR)$(bindir)/icu-config
+
+ifeq ($(DOXYGEN),)
+install-doc:
+else
+install-doc: doc
+	$(RM) -r $(DESTDIR)$(docdir)/$(docsubdir)
+	$(MKINSTALLDIRS) $(DESTDIR)$(docdir)/$(docsubdir)
+	$(INSTALL_DATA) doc/html/* $(DESTDIR)$(docdir)/$(docsubdir)
+endif
+
+$(DESTDIR)$(pkglibdir)/%: $(top_srcdir)/../data/%
+	$(INSTALL_DATA) $< $@
+
+dist-local:
+
+clean-local:
+	test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
+	$(RMV) Doxyfile doc
+
+distclean-local: clean-local
+	$(RMV) Makefile config/Makefile icudefs.mk
+	$(RMV) $(top_builddir)/config/Makefile.inc $(top_builddir)/config/icu-config
+	$(RMV) config.cache config.log config.status
+
+check-local:
+
+#$(srcdir)/configure : $(srcdir)/configure.in $(top_srcdir)/aclocal.m4
+#	cd $(srcdir) && $(AUTOCONF)
+
+icudefs.mk: $(srcdir)/icudefs.mk.in  $(top_builddir)/config.status
+	cd $(top_builddir) \
+		&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+Makefile: $(srcdir)/Makefile.in icudefs.mk $(top_builddir)/config.status
+	cd $(top_builddir) \
+		&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+$(top_builddir)/config/Makefile.inc: $(srcdir)/config/Makefile.inc.in  $(top_builddir)/config.status
+	cd $(top_builddir) \
+		&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+$(top_builddir)/config/icu-config: $(top_builddir)/Makefile $(top_srcdir)/config/icu-config-top $(top_srcdir)/config/icu-config-bottom $(top_builddir)/config/Makefile.inc @platform_make_fragment@ $(top_srcdir)/config/make2sh.sed
+	-$(RMV) $@
+	$(INSTALL_DATA) $(top_srcdir)/config/icu-config-top $@
+	@echo "# Following from @platform_make_fragment@" >> $@
+	sed -f $(top_srcdir)/config/make2sh.sed < $(top_builddir)/config/Makefile.inc | grep -v '#M#' | uniq >> $@
+	sed -f $(top_srcdir)/config/make2sh.sed < @platform_make_fragment@ | grep -v '#M#' | uniq >> $@
+	cat $(top_srcdir)/config/icu-config-bottom >> $@
+	echo "# Rebuilt on "`date` >> $@
+
+config.status: $(srcdir)/configure $(srcdir)/common/unicode/uversion.h
+	@echo
+	@echo
+	@echo "*** config.status has become stale ***"
+	@echo "   'configure' and/or 'uversion.h' have changed, please"
+	@echo "  do 'runConfigureICU' (or 'configure') again, as per"
+	@echo "  the readme.html."
+	@echo
+	@echo
+	exit 1
+
+
+install-manx: $(MANX_FILES)
+	$(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
+	$(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
+
+config/%.$(SECTION): $(srcdir)/config/%.$(SECTION).in
+	cd $(top_builddir) \
+	 && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
diff --git a/source/acconfig.h b/source/acconfig.h
new file mode 100644
index 0000000..76fed55
--- /dev/null
+++ b/source/acconfig.h
@@ -0,0 +1,29 @@
+/* Copyright (c) 1999-2000, International Business Machines Corporation and
+   others. All Rights Reserved. */
+/* Define to signed char if not in <sys/types.h> */
+#undef int8_t
+
+/* Define to unsigned char if not in <sys/types.h> */
+#undef uint8_t 
+
+/* Define to signed short if not in <sys/types.h> */
+#undef int16_t 
+
+/* Define to unsigned short if not in <sys/types.h> */
+#undef uint16_t 
+
+/* Define to signed long if not in <sys/types.h> */
+#undef int32_t 
+
+/* Define to unsigned long if not in <sys/types.h> */
+#undef uint32_t 
+
+/* Define to signed char if not in <sys/types.h> */
+#undef bool_t 
+
+/* Define if your system has <wchar.h> */
+#undef HAVE_WCHAR_H
+
+/* Define to the size of wchar_t */
+#undef SIZEOF_WCHAR_T
+
diff --git a/source/aclocal.m4 b/source/aclocal.m4
new file mode 100644
index 0000000..616bbfe
--- /dev/null
+++ b/source/aclocal.m4
@@ -0,0 +1,299 @@
+dnl aclocal.m4 for ICU
+dnl Copyright (c) 1999-2004, International Business Machines Corporation and
+dnl others. All Rights Reserved.
+dnl Stephen F. Booth
+
+dnl @TOP@
+
+dnl ICU_CHECK_MH_FRAG
+AC_DEFUN(ICU_CHECK_MH_FRAG, [
+	AC_CACHE_CHECK(
+		[which Makefile fragment to use],
+		[icu_cv_host_frag],
+		[
+case "${host}" in
+*-*-solaris*)
+	if test "$GCC" = yes; then	
+		icu_cv_host_frag=mh-solaris-gcc 
+	else
+		icu_cv_host_frag=mh-solaris
+	fi ;;
+alpha*-*-linux-gnu)
+	if test "$GCC" = yes; then
+		icu_cv_host_frag=mh-alpha-linux-gcc
+	else  
+		icu_cv_host_frag=mh-alpha-linux-cc
+	fi ;;
+*-*-linux*) icu_cv_host_frag=mh-linux ;;
+*-*-cygwin)
+	if test "$ac_cv_prog_gcc" = yes; then
+	  	icu_cv_host_frag=mh-cygwin
+	else
+	  	icu_cv_host_frag=mh-cygwin-msvc
+	fi ;;
+*-*-*bsd*) 	icu_cv_host_frag=mh-bsd-gcc ;;
+*-*-aix*)
+	if test "$GCC" = yes; then
+		icu_cv_host_frag=mh-aix-gcc
+	else
+		if test -n "`$CXX --help 2>&1 | grep 'IBM C and C++ Compilers$'`"; then
+			icu_cv_host_frag=mh-aix
+		else
+			icu_cv_host_frag=mh-aix-va
+		fi
+	fi ;;
+*-*-hpux*)
+	if test "$GCC" = yes; then
+		icu_cv_host_frag=mh-hpux-gcc
+	else
+		case "$CXX" in
+		*aCC)    icu_cv_host_frag=mh-hpux-acc ;;
+		*CC)     icu_cv_host_frag=mh-hpux-cc ;;
+		esac
+	fi ;;
+*-*ibm-openedition*|*-*-os390*)	icu_cv_host_frag=mh-os390 ;;
+*-*-os400*)	icu_cv_host_frag=mh-os400 ;;
+*-apple-rhapsody*)	icu_cv_host_frag=mh-darwin ;;
+*-apple-darwin*)	icu_cv_host_frag=mh-darwin ;;
+*-*-beos)	icu_cv_host_frag=mh-beos ;;
+*-*-irix*)	icu_cv_host_frag=mh-irix ;;
+*-dec-osf*) icu_cv_host_frag=mh-alpha-osf ;;
+*-*-nto*)	icu_cv_host_frag=mh-qnx ;;
+*-ncr-*)	icu_cv_host_frag=mh-mpras ;;
+*-sequent-*) 	icu_cv_host_frag=mh-ptx ;;
+*) 		icu_cv_host_frag=mh-unknown ;;
+esac
+		]
+	)
+])
+
+dnl ICU_CONDITIONAL - similar example taken from Automake 1.4
+AC_DEFUN(ICU_CONDITIONAL,
+[AC_SUBST($1_TRUE)
+if $2; then
+  $1_TRUE=
+else
+  $1_TRUE='#'
+fi])
+
+dnl AC_SEARCH_LIBS_FIRST(FUNCTION, SEARCH-LIBS [, ACTION-IF-FOUND
+dnl            [, ACTION-IF-NOT-FOUND [, OTHER-LIBRARIES]]])
+dnl Search for a library defining FUNC, then see if it's not already available.
+ 
+AC_DEFUN(AC_SEARCH_LIBS_FIRST,
+[AC_PREREQ([2.13])
+AC_CACHE_CHECK([for library containing $1], [ac_cv_search_$1],
+[ac_func_search_save_LIBS="$LIBS"
+ac_cv_search_$1="no"
+for i in $2; do
+LIBS="-l$i $5 $ac_func_search_save_LIBS"
+AC_TRY_LINK_FUNC([$1],
+[ac_cv_search_$1="-l$i"
+break])
+done
+if test "$ac_cv_search_$1" = "no"; then
+AC_TRY_LINK_FUNC([$1], [ac_cv_search_$1="none required"])
+fi
+LIBS="$ac_func_search_save_LIBS"])
+if test "$ac_cv_search_$1" != "no"; then
+  test "$ac_cv_search_$1" = "none required" || LIBS="$ac_cv_search_$1 $LIBS"
+  $3
+else :
+  $4
+fi])
+
+dnl Check if we can build and use 64-bit libraries
+AC_DEFUN(AC_CHECK_64BIT_LIBS,
+[
+    AC_ARG_ENABLE(64bit-libs,
+        [  --enable-64bit-libs     build 64-bit libraries [default=yes]],
+        [ENABLE_64BIT_LIBS=${enableval}],
+        [ENABLE_64BIT_LIBS=yes]
+    )
+    dnl These results can't be cached because is sets compiler flags.
+    AC_MSG_CHECKING([for 64-bit executable support])
+    if test "$ENABLE_64BIT_LIBS" = no; then
+        case "${host}" in
+        *-*-hpux*)
+#            case "${CXX}" in
+#            *CC)
+#                CFLAGS="${CFLAGS} +DAportable"
+#                CXXFLAGS="${CXXFLAGS} +DAportable"
+#                ;;
+#            esac;;
+        esac
+    else
+        case "${host}" in
+        *-*-solaris*)
+            if test "$GCC" = no; then
+                SOL64=`$CXX -xarch=v9 2>&1 && $CC -xarch=v9 2>&1 | grep -v usage:`
+                SPARCV9=`isainfo -n 2>&1 | grep sparcv9`
+                if test -z "$SOL64" && test -n "$SPARCV9"; then
+                    CFLAGS="${CFLAGS} -xtarget=ultra -xarch=v9"
+                    CXXFLAGS="${CXXFLAGS} -xtarget=ultra -xarch=v9"
+                    LDFLAGS="${LDFLAGS} -xtarget=ultra -xarch=v9"
+                    ENABLE_64BIT_LIBS=yes
+                else
+                    ENABLE_64BIT_LIBS=no
+                fi
+            else
+                ENABLE_64BIT_LIBS=no
+            fi
+            ;;
+        ia64-*-linux*)
+            if test "$GCC" = yes; then
+                # gcc compiler support
+                if test -n "`$CXX -dumpspecs 2>&1 && $CC -dumpspecs 2>&1 | grep -v __LP64__`"; then
+                    ENABLE_64BIT_LIBS=yes
+                else
+                    ENABLE_64BIT_LIBS=no
+                fi
+            else
+                # check for ecc/ecpc compiler support
+                if test -n "`$CXX --help 2>&1 && $CC --help 2>&1 | grep -v Intel`"; then
+                    if test -n "`$CXX --help 2>&1 && $CC --help 2>&1 | grep -v Itanium`"; then
+                        ENABLE_64BIT_LIBS=yes
+                    else
+                        ENABLE_64BIT_LIBS=no
+                    fi
+                else
+                    # unknown
+                    ENABLE_64BIT_LIBS=no
+                fi
+            fi
+            ;;
+        x86_64-*-linux*)
+            if test "$GCC" = yes; then
+                if test -n "`$CXX -dumpspecs 2>&1 && $CC -dumpspecs 2>&1 | grep -v __LP64__`"; then
+                    ENABLE_64BIT_LIBS=yes
+                else
+                    ENABLE_64BIT_LIBS=no
+                fi
+            else
+                # unknown
+                ENABLE_64BIT_LIBS=no
+            fi
+            ;;
+        *-*-aix*)
+            if test "$ac_cv_prog_gcc" = no; then
+                # Note: Have not tested 64-bitness with gcc.
+                # Maybe the flag "-maix64" could be used with gcc?
+                OLD_CFLAGS="${CFLAGS}"
+                OLD_CXXFLAGS="${CXXFLAGS}"
+                OLD_LDFLAGS="${LDFLAGS}"
+                CFLAGS="${CFLAGS} -q64"
+                CXXFLAGS="${CXXFLAGS} -q64"
+                LDFLAGS="${LDFLAGS} -q64"
+                AC_TRY_RUN(int main(void) {return 0;},
+                   ENABLE_64BIT_LIBS=yes, ENABLE_64BIT_LIBS=no, ENABLE_64BIT_LIBS=no)
+                if test "$ENABLE_64BIT_LIBS" = no; then
+                    CFLAGS="${OLD_CFLAGS}"
+                    CXXFLAGS="${OLD_CXXFLAGS}"
+                    LDFLAGS="${OLD_LDFLAGS}"
+                else
+                    ARFLAGS="${ARFLAGS} -X64"
+                fi
+            fi
+            ;;
+        *-*-hpux*)
+            dnl First we try the newer +DD64, if that doesn't work,
+            dnl try other options.
+
+            OLD_CFLAGS="${CFLAGS}"
+            OLD_CXXFLAGS="${CXXFLAGS}"
+            CFLAGS="${CFLAGS} +DD64"
+            CXXFLAGS="${CXXFLAGS} +DD64"
+            AC_TRY_RUN(int main(void) {return 0;},
+                ENABLE_64BIT_LIBS=yes, ENABLE_64BIT_LIBS=no, ENABLE_64BIT_LIBS=no)
+            if test "$ENABLE_64BIT_LIBS" = no; then
+                CFLAGS="${OLD_CFLAGS}"
+                CXXFLAGS="${OLD_CXXFLAGS}"
+                CFLAGS="${CFLAGS} +DA2.0W"
+                CXXFLAGS="${CXXFLAGS} +DA2.0W"
+                AC_TRY_RUN(int main(void) {return 0;},
+                    ENABLE_64BIT_LIBS=yes, ENABLE_64BIT_LIBS=no, ENABLE_64BIT_LIBS=no)
+                if test "$ENABLE_64BIT_LIBS" = no; then
+                    CFLAGS="${OLD_CFLAGS}"
+                    CXXFLAGS="${OLD_CXXFLAGS}"
+                fi
+            fi
+            ;;
+        *)
+            ENABLE_64BIT_LIBS=no
+            ;;
+        esac
+    fi
+    dnl Individual tests that fail should reset their own flags.
+    AC_MSG_RESULT($ENABLE_64BIT_LIBS)
+])
+
+dnl Strict compilation options.
+AC_DEFUN(AC_CHECK_STRICT_COMPILE,
+[
+    AC_MSG_CHECKING([whether strict compiling is on])
+    AC_ARG_ENABLE(strict,[  --enable-strict         compile with strict compiler options [default=no]], [
+        if test "$enableval" = no
+        then
+            ac_use_strict_options=no
+        else
+            ac_use_strict_options=yes
+        fi
+      ], [ac_use_strict_options=no])
+    AC_MSG_RESULT($ac_use_strict_options)
+
+    if test "$ac_use_strict_options" = yes
+    then
+        if test "$GCC" = yes
+        then
+            CFLAGS="$CFLAGS -Wall -ansi -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -Winline -Wno-long-long"
+            case "${host}" in
+            *-*-solaris*)
+                CFLAGS="$CFLAGS -D__STDC__=0";;
+            esac
+        fi
+        if test "$GXX" = yes
+        then
+            CXXFLAGS="$CXXFLAGS -W -Wall -ansi -pedantic -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -Winline -Wno-long-long"
+            case "${host}" in
+            *-*-solaris*)
+                CXXFLAGS="$CXXFLAGS -D__STDC__=0";;
+            esac
+        fi
+        case "${host}" in
+        *-*-cygwin)
+            if test `cl /? 2>&1 | head -c9` = "Microsoft"
+            then
+                CFLAGS="$CFLAGS /W4"
+                CXXFLAGS="$CXXFLAGS /W4"
+            fi
+        esac
+    fi
+])
+
+dnl Define a sizeof checking macro that is a bit better than autoconf's
+dnl builtin (and heavily based on it, of course). The new macro is
+dnl AC_DO_CHECK_SIZEOF(TYPE [, CROSS_SIZE [, INCLUDES])
+AC_DEFUN(AC_DO_CHECK_SIZEOF,
+[changequote(<<, >>)dnl
+dnl The name to #define.
+define(<<AC_TYPE_NAME>>, translit(sizeof_$1, [a-z *], [A-Z_P]))dnl
+dnl The cache variable name.
+define(<<AC_CV_NAME>>, translit(ac_cv_sizeof_$1, [ *], [_p]))dnl
+changequote([, ])dnl
+AC_MSG_CHECKING(size of $1)
+AC_CACHE_VAL(AC_CV_NAME,
+[AC_TRY_RUN($3
+[#include <stdio.h>
+main()
+{
+  FILE *f=fopen("conftestval", "w");
+  if (!f) exit(1);
+  fprintf(f, "%d\n", sizeof($1));
+  exit(0);
+}], AC_CV_NAME=`cat conftestval`, AC_CV_NAME=0, ifelse([$2], , , AC_CV_NAME=$2))])dnl
+AC_MSG_RESULT($AC_CV_NAME)
+AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME)
+undefine([AC_TYPE_NAME])dnl
+undefine([AC_CV_NAME])dnl
+])
+
diff --git a/source/allinone/.cvsignore b/source/allinone/.cvsignore
new file mode 100644
index 0000000..4899cad
--- /dev/null
+++ b/source/allinone/.cvsignore
@@ -0,0 +1,3 @@
+*.ncb
+*.opt
+*.suo
\ No newline at end of file
diff --git a/source/allinone/all/.cvsignore b/source/allinone/all/.cvsignore
new file mode 100644
index 0000000..c6dfba6
--- /dev/null
+++ b/source/allinone/all/.cvsignore
@@ -0,0 +1 @@
+*.plg
diff --git a/source/allinone/all/all.dsp b/source/allinone/all/all.dsp
new file mode 100644
index 0000000..5336d61
--- /dev/null
+++ b/source/allinone/all/all.dsp
@@ -0,0 +1,93 @@
+# Microsoft Developer Studio Project File - Name="all" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Generic Project" 0x010a
+
+CFG=ALL - WIN32 DEBUG
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "all.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "all.mak" CFG="ALL - WIN32 DEBUG"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "all - Win32 Release" (based on "Win32 (x86) Generic Project")
+!MESSAGE "all - Win32 Debug" (based on "Win32 (x86) Generic Project")
+!MESSAGE "all - Win64 Release" (based on "Win32 (x86) Generic Project")
+!MESSAGE "all - Win64 Debug" (based on "Win32 (x86) Generic Project")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+MTL=midl.exe
+
+!IF  "$(CFG)" == "all - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir ""
+
+!ELSEIF  "$(CFG)" == "all - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Dir ""
+
+!ELSEIF  "$(CFG)" == "all - Win64 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir ""
+
+!ELSEIF  "$(CFG)" == "all - Win64 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Dir ""
+
+!ENDIF 
+
+# Begin Target
+
+# Name "all - Win32 Release"
+# Name "all - Win32 Debug"
+# Name "all - Win64 Release"
+# Name "all - Win64 Debug"
+# End Target
+# End Project
diff --git a/source/allinone/allinone.dsw b/source/allinone/allinone.dsw
new file mode 100644
index 0000000..59ba63a
--- /dev/null
+++ b/source/allinone/allinone.dsw
@@ -0,0 +1,719 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "all"=.\all\all.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name cintltst
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name ctestfw
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name decmn
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name derb
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name genccode
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name gencmn
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name gencnval
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name gennames
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name gennorm
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name genpname
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name genprops
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name genrb
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name gentest
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name genuca
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name i18n
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name intltest
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name layout
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name makeconv
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name makedata
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name pkgdata
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name stubdata
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name uconv
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name io
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name genbrk
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name layoutex
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name gensprep
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name icuswap
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name iotest
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "cintltst"=..\test\cintltst\cintltst.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name ctestfw
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name i18n
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "common"=..\common\common.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name stubdata
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "ctestfw"=..\tools\ctestfw\ctestfw.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "decmn"=..\tools\gencmn\decmn.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "derb"=..\TOOLS\GENRB\derb.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name stubdata
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "genbrk"=..\tools\genbrk\genbrk.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "genccode"=..\tools\genccode\genccode.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "gencmn"=..\tools\gencmn\gencmn.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "gencnval"=..\tools\gencnval\gencnval.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "gennames"=..\tools\gennames\gennames.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "gennorm"=..\tools\gennorm\gennorm.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "genpname"=..\tools\genpname\genpname.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "genprops"=..\tools\genprops\genprops.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "genrb"=..\tools\genrb\genrb.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name makeconv
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name i18n
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "gensprep"=..\tools\gensprep\gensprep.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "gentest"=..\tools\gentest\gentest.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "genuca"=..\TOOLS\genuca\genuca.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name i18n
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "i18n"=..\i18n\i18n.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "icuswap"=..\tools\icuswap\icuswap.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name i18n
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "intltest"=..\test\intltest\intltest.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name i18n
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name ctestfw
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "io"=..\io\io.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name i18n
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "iotest"=..\test\iotest\iotest.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name ctestfw
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name i18n
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name io
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "layout"=..\layout\layout.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "layoutex"=..\layoutex\layoutex.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name i18n
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name layout
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "makeconv"=..\tools\makeconv\makeconv.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "makedata"=..\data\makedata.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name genccode
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name gencmn
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name gencnval
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name gennames
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name gennorm
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name genpname
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name genprops
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name genrb
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name gentest
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name genuca
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name i18n
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name makeconv
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name pkgdata
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name stubdata
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name genbrk
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name gensprep
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "pkgdata"=..\tools\pkgdata\pkgdata.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name toolutil
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "stubdata"=..\STUBDATA\stubdata.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "toolutil"=..\tools\toolutil\toolutil.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Project: "uconv"=..\extra\uconv\uconv.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+    Begin Project Dependency
+    Project_Dep_Name common
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name genrb
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name i18n
+    End Project Dependency
+    Begin Project Dependency
+    Project_Dep_Name pkgdata
+    End Project Dependency
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/source/allinone/allinone.sln b/source/allinone/allinone.sln
new file mode 100644
index 0000000..4d2d724
--- /dev/null
+++ b/source/allinone/allinone.sln
@@ -0,0 +1,335 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cintltst", "..\test\cintltst\cintltst.vcproj", "{3D1246AE-1B32-479B-BECA-AEFA97BE2321}"
+	ProjectSection(ProjectDependencies) = postProject
+		{0178B127-6269-407D-B112-93877BB62776} = {0178B127-6269-407D-B112-93877BB62776}
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{ECA6B435-B4FA-4F9F-BF95-F451D078FC47} = {ECA6B435-B4FA-4F9F-BF95-F451D078FC47}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common", "..\common\common.vcproj", "{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}"
+	ProjectSection(ProjectDependencies) = postProject
+		{203EC78A-0531-43F0-A636-285439BDE025} = {203EC78A-0531-43F0-A636-285439BDE025}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ctestfw", "..\tools\ctestfw\ctestfw.vcproj", "{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}"
+	ProjectSection(ProjectDependencies) = postProject
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "decmn", "..\tools\gencmn\decmn.vcproj", "{20869594-A3DD-4A75-8068-99B03A5CF4E4}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "derb", "..\tools\genrb\derb.vcproj", "{D3065ADB-8820-4CC7-9B6C-9510833961A3}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genbrk", "..\tools\genbrk\genbrk.vcproj", "{C2BE5000-7501-4E87-9724-B8D82494FAE6}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genccode", "..\tools\genccode\genccode.vcproj", "{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gencmn", "..\tools\gencmn\gencmn.vcproj", "{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gencnval", "..\tools\gencnval\gencnval.vcproj", "{8B41752B-5A52-41E4-B7E0-07921C0CC6BF}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gennames", "..\tools\gennames\gennames.vcproj", "{F5281B04-A9E0-4680-BBA8-1D7F7D115458}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gennorm", "..\tools\gennorm\gennorm.vcproj", "{F5213103-6CBE-46E6-B4CC-2570B6837D86}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genpname", "..\tools\genpname\genpname.vcproj", "{DBC0AF0B-B9FF-4B23-905B-4D4CDC2A91CB}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genprops", "..\tools\genprops\genprops.vcproj", "{6F744648-D15F-478A-90C6-58E353B5DDB3}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genrb", "..\tools\genrb\genrb.vcproj", "{97521D06-EC47-45D4-8BD0-9E16B3F93B2A}"
+	ProjectSection(ProjectDependencies) = postProject
+		{0178B127-6269-407D-B112-93877BB62776} = {0178B127-6269-407D-B112-93877BB62776}
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gentest", "..\tools\gentest\gentest.vcproj", "{77C78066-746F-4EA6-B3FE-B8C8A4A97891}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genuca", "..\tools\genuca\genuca.vcproj", "{86829694-A375-4C58-B4EA-96EF514E3225}"
+	ProjectSection(ProjectDependencies) = postProject
+		{0178B127-6269-407D-B112-93877BB62776} = {0178B127-6269-407D-B112-93877BB62776}
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "i18n", "..\i18n\i18n.vcproj", "{0178B127-6269-407D-B112-93877BB62776}"
+	ProjectSection(ProjectDependencies) = postProject
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "intltest", "..\test\intltest\intltest.vcproj", "{73632960-B3A6-464D-83A3-4B43365F19B8}"
+	ProjectSection(ProjectDependencies) = postProject
+		{0178B127-6269-407D-B112-93877BB62776} = {0178B127-6269-407D-B112-93877BB62776}
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{ECA6B435-B4FA-4F9F-BF95-F451D078FC47} = {ECA6B435-B4FA-4F9F-BF95-F451D078FC47}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "layout", "..\layout\layout.vcproj", "{C920062A-0647-4553-A3B2-37C58065664B}"
+	ProjectSection(ProjectDependencies) = postProject
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "layoutex", "..\layoutex\layoutex.vcproj", "{37FC2C7F-1904-4811-8955-2F478830EAD1}"
+	ProjectSection(ProjectDependencies) = postProject
+		{C920062A-0647-4553-A3B2-37C58065664B} = {C920062A-0647-4553-A3B2-37C58065664B}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "makeconv", "..\tools\makeconv\makeconv.vcproj", "{F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "makedata", "..\data\makedata.vcproj", "{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}"
+	ProjectSection(ProjectDependencies) = postProject
+		{C2BE5000-7501-4E87-9724-B8D82494FAE6} = {C2BE5000-7501-4E87-9724-B8D82494FAE6}
+		{F5213103-6CBE-46E6-B4CC-2570B6837D86} = {F5213103-6CBE-46E6-B4CC-2570B6837D86}
+		{F5281B04-A9E0-4680-BBA8-1D7F7D115458} = {F5281B04-A9E0-4680-BBA8-1D7F7D115458}
+		{97521D06-EC47-45D4-8BD0-9E16B3F93B2A} = {97521D06-EC47-45D4-8BD0-9E16B3F93B2A}
+		{DBC0AF0B-B9FF-4B23-905B-4D4CDC2A91CB} = {DBC0AF0B-B9FF-4B23-905B-4D4CDC2A91CB}
+		{0178B127-6269-407D-B112-93877BB62776} = {0178B127-6269-407D-B112-93877BB62776}
+		{8B41752B-5A52-41E4-B7E0-07921C0CC6BF} = {8B41752B-5A52-41E4-B7E0-07921C0CC6BF}
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C} = {F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}
+		{6F744648-D15F-478A-90C6-58E353B5DDB3} = {6F744648-D15F-478A-90C6-58E353B5DDB3}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{77C78066-746F-4EA6-B3FE-B8C8A4A97891} = {77C78066-746F-4EA6-B3FE-B8C8A4A97891}
+		{203EC78A-0531-43F0-A636-285439BDE025} = {203EC78A-0531-43F0-A636-285439BDE025}
+		{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F} = {A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}
+		{86829694-A375-4C58-B4EA-96EF514E3225} = {86829694-A375-4C58-B4EA-96EF514E3225}
+		{631C23CE-6C1D-4875-88F0-85E0A42B36EA} = {631C23CE-6C1D-4875-88F0-85E0A42B36EA}
+		{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547} = {FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}
+		{4C8454FE-81D3-4CA3-9927-29BA96F03DAC} = {4C8454FE-81D3-4CA3-9927-29BA96F03DAC}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pkgdata", "..\tools\pkgdata\pkgdata.vcproj", "{4C8454FE-81D3-4CA3-9927-29BA96F03DAC}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F} = {A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}
+		{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547} = {FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stubdata", "..\stubdata\stubdata.vcproj", "{203EC78A-0531-43F0-A636-285439BDE025}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "toolutil", "..\tools\toolutil\toolutil.vcproj", "{6B231032-3CB5-4EED-9210-810D666A23A0}"
+	ProjectSection(ProjectDependencies) = postProject
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uconv", "..\extra\uconv\uconv.vcproj", "{DBA4088D-F6F9-4F8F-8820-082A4765C16C}"
+	ProjectSection(ProjectDependencies) = postProject
+		{97521D06-EC47-45D4-8BD0-9E16B3F93B2A} = {97521D06-EC47-45D4-8BD0-9E16B3F93B2A}
+		{0178B127-6269-407D-B112-93877BB62776} = {0178B127-6269-407D-B112-93877BB62776}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{4C8454FE-81D3-4CA3-9927-29BA96F03DAC} = {4C8454FE-81D3-4CA3-9927-29BA96F03DAC}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "io", "..\io\io.vcproj", "{C2B04507-2521-4801-BF0D-5FD79D6D518C}"
+	ProjectSection(ProjectDependencies) = postProject
+		{0178B127-6269-407D-B112-93877BB62776} = {0178B127-6269-407D-B112-93877BB62776}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gensprep", "..\tools\gensprep\gensprep.vcproj", "{631C23CE-6C1D-4875-88F0-85E0A42B36EA}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icuswap", "..\tools\icuswap\icuswap.vcproj", "{6FC24387-370C-4561-9582-7A819749E2C5}"
+	ProjectSection(ProjectDependencies) = postProject
+		{0178B127-6269-407D-B112-93877BB62776} = {0178B127-6269-407D-B112-93877BB62776}
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iotest", "..\test\iotest\iotest.vcproj", "{E4993E82-D68A-46CA-BAE0-9D35E172E46F}"
+	ProjectSection(ProjectDependencies) = postProject
+		{C2B04507-2521-4801-BF0D-5FD79D6D518C} = {C2B04507-2521-4801-BF0D-5FD79D6D518C}
+		{0178B127-6269-407D-B112-93877BB62776} = {0178B127-6269-407D-B112-93877BB62776}
+		{ECA6B435-B4FA-4F9F-BF95-F451D078FC47} = {ECA6B435-B4FA-4F9F-BF95-F451D078FC47}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfiguration) = preSolution
+		Debug = Debug
+		Release = Release
+	EndGlobalSection
+	GlobalSection(ProjectConfiguration) = postSolution
+		{3D1246AE-1B32-479B-BECA-AEFA97BE2321}.Debug.ActiveCfg = Debug|Win32
+		{3D1246AE-1B32-479B-BECA-AEFA97BE2321}.Debug.Build.0 = Debug|Win32
+		{3D1246AE-1B32-479B-BECA-AEFA97BE2321}.Release.ActiveCfg = Release|Win32
+		{3D1246AE-1B32-479B-BECA-AEFA97BE2321}.Release.Build.0 = Release|Win32
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}.Debug.ActiveCfg = Debug|Win32
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}.Debug.Build.0 = Debug|Win32
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}.Release.ActiveCfg = Release|Win32
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}.Release.Build.0 = Release|Win32
+		{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.Debug.ActiveCfg = Debug|Win32
+		{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.Debug.Build.0 = Debug|Win32
+		{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.Release.ActiveCfg = Release|Win32
+		{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.Release.Build.0 = Release|Win32
+		{20869594-A3DD-4A75-8068-99B03A5CF4E4}.Debug.ActiveCfg = Debug|Win32
+		{20869594-A3DD-4A75-8068-99B03A5CF4E4}.Debug.Build.0 = Debug|Win32
+		{20869594-A3DD-4A75-8068-99B03A5CF4E4}.Release.ActiveCfg = Release|Win32
+		{20869594-A3DD-4A75-8068-99B03A5CF4E4}.Release.Build.0 = Release|Win32
+		{D3065ADB-8820-4CC7-9B6C-9510833961A3}.Debug.ActiveCfg = Debug|Win32
+		{D3065ADB-8820-4CC7-9B6C-9510833961A3}.Debug.Build.0 = Debug|Win32
+		{D3065ADB-8820-4CC7-9B6C-9510833961A3}.Release.ActiveCfg = Release|Win32
+		{D3065ADB-8820-4CC7-9B6C-9510833961A3}.Release.Build.0 = Release|Win32
+		{C2BE5000-7501-4E87-9724-B8D82494FAE6}.Debug.ActiveCfg = Debug|Win32
+		{C2BE5000-7501-4E87-9724-B8D82494FAE6}.Debug.Build.0 = Debug|Win32
+		{C2BE5000-7501-4E87-9724-B8D82494FAE6}.Release.ActiveCfg = Release|Win32
+		{C2BE5000-7501-4E87-9724-B8D82494FAE6}.Release.Build.0 = Release|Win32
+		{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}.Debug.ActiveCfg = Debug|Win32
+		{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}.Debug.Build.0 = Debug|Win32
+		{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}.Release.ActiveCfg = Release|Win32
+		{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}.Release.Build.0 = Release|Win32
+		{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}.Debug.ActiveCfg = Debug|Win32
+		{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}.Debug.Build.0 = Debug|Win32
+		{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}.Release.ActiveCfg = Release|Win32
+		{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}.Release.Build.0 = Release|Win32
+		{8B41752B-5A52-41E4-B7E0-07921C0CC6BF}.Debug.ActiveCfg = Debug|Win32
+		{8B41752B-5A52-41E4-B7E0-07921C0CC6BF}.Debug.Build.0 = Debug|Win32
+		{8B41752B-5A52-41E4-B7E0-07921C0CC6BF}.Release.ActiveCfg = Release|Win32
+		{8B41752B-5A52-41E4-B7E0-07921C0CC6BF}.Release.Build.0 = Release|Win32
+		{F5281B04-A9E0-4680-BBA8-1D7F7D115458}.Debug.ActiveCfg = Debug|Win32
+		{F5281B04-A9E0-4680-BBA8-1D7F7D115458}.Debug.Build.0 = Debug|Win32
+		{F5281B04-A9E0-4680-BBA8-1D7F7D115458}.Release.ActiveCfg = Release|Win32
+		{F5281B04-A9E0-4680-BBA8-1D7F7D115458}.Release.Build.0 = Release|Win32
+		{F5213103-6CBE-46E6-B4CC-2570B6837D86}.Debug.ActiveCfg = Debug|Win32
+		{F5213103-6CBE-46E6-B4CC-2570B6837D86}.Debug.Build.0 = Debug|Win32
+		{F5213103-6CBE-46E6-B4CC-2570B6837D86}.Release.ActiveCfg = Release|Win32
+		{F5213103-6CBE-46E6-B4CC-2570B6837D86}.Release.Build.0 = Release|Win32
+		{DBC0AF0B-B9FF-4B23-905B-4D4CDC2A91CB}.Debug.ActiveCfg = Debug|Win32
+		{DBC0AF0B-B9FF-4B23-905B-4D4CDC2A91CB}.Debug.Build.0 = Debug|Win32
+		{DBC0AF0B-B9FF-4B23-905B-4D4CDC2A91CB}.Release.ActiveCfg = Release|Win32
+		{DBC0AF0B-B9FF-4B23-905B-4D4CDC2A91CB}.Release.Build.0 = Release|Win32
+		{6F744648-D15F-478A-90C6-58E353B5DDB3}.Debug.ActiveCfg = Debug|Win32
+		{6F744648-D15F-478A-90C6-58E353B5DDB3}.Debug.Build.0 = Debug|Win32
+		{6F744648-D15F-478A-90C6-58E353B5DDB3}.Release.ActiveCfg = Release|Win32
+		{6F744648-D15F-478A-90C6-58E353B5DDB3}.Release.Build.0 = Release|Win32
+		{97521D06-EC47-45D4-8BD0-9E16B3F93B2A}.Debug.ActiveCfg = Debug|Win32
+		{97521D06-EC47-45D4-8BD0-9E16B3F93B2A}.Debug.Build.0 = Debug|Win32
+		{97521D06-EC47-45D4-8BD0-9E16B3F93B2A}.Release.ActiveCfg = Release|Win32
+		{97521D06-EC47-45D4-8BD0-9E16B3F93B2A}.Release.Build.0 = Release|Win32
+		{77C78066-746F-4EA6-B3FE-B8C8A4A97891}.Debug.ActiveCfg = Debug|Win32
+		{77C78066-746F-4EA6-B3FE-B8C8A4A97891}.Debug.Build.0 = Debug|Win32
+		{77C78066-746F-4EA6-B3FE-B8C8A4A97891}.Release.ActiveCfg = Release|Win32
+		{77C78066-746F-4EA6-B3FE-B8C8A4A97891}.Release.Build.0 = Release|Win32
+		{86829694-A375-4C58-B4EA-96EF514E3225}.Debug.ActiveCfg = Debug|Win32
+		{86829694-A375-4C58-B4EA-96EF514E3225}.Debug.Build.0 = Debug|Win32
+		{86829694-A375-4C58-B4EA-96EF514E3225}.Release.ActiveCfg = Release|Win32
+		{86829694-A375-4C58-B4EA-96EF514E3225}.Release.Build.0 = Release|Win32
+		{0178B127-6269-407D-B112-93877BB62776}.Debug.ActiveCfg = Debug|Win32
+		{0178B127-6269-407D-B112-93877BB62776}.Debug.Build.0 = Debug|Win32
+		{0178B127-6269-407D-B112-93877BB62776}.Release.ActiveCfg = Release|Win32
+		{0178B127-6269-407D-B112-93877BB62776}.Release.Build.0 = Release|Win32
+		{73632960-B3A6-464D-83A3-4B43365F19B8}.Debug.ActiveCfg = Debug|Win32
+		{73632960-B3A6-464D-83A3-4B43365F19B8}.Debug.Build.0 = Debug|Win32
+		{73632960-B3A6-464D-83A3-4B43365F19B8}.Release.ActiveCfg = Release|Win32
+		{73632960-B3A6-464D-83A3-4B43365F19B8}.Release.Build.0 = Release|Win32
+		{C920062A-0647-4553-A3B2-37C58065664B}.Debug.ActiveCfg = Debug|Win32
+		{C920062A-0647-4553-A3B2-37C58065664B}.Debug.Build.0 = Debug|Win32
+		{C920062A-0647-4553-A3B2-37C58065664B}.Release.ActiveCfg = Release|Win32
+		{C920062A-0647-4553-A3B2-37C58065664B}.Release.Build.0 = Release|Win32
+		{37FC2C7F-1904-4811-8955-2F478830EAD1}.Debug.ActiveCfg = Debug|Win32
+		{37FC2C7F-1904-4811-8955-2F478830EAD1}.Debug.Build.0 = Debug|Win32
+		{37FC2C7F-1904-4811-8955-2F478830EAD1}.Release.ActiveCfg = Release|Win32
+		{37FC2C7F-1904-4811-8955-2F478830EAD1}.Release.Build.0 = Release|Win32
+		{F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}.Debug.ActiveCfg = Debug|Win32
+		{F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}.Debug.Build.0 = Debug|Win32
+		{F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}.Release.ActiveCfg = Release|Win32
+		{F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}.Release.Build.0 = Release|Win32
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.Debug.ActiveCfg = Debug|Win32
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.Debug.Build.0 = Debug|Win32
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.Release.ActiveCfg = Release|Win32
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.Release.Build.0 = Release|Win32
+		{4C8454FE-81D3-4CA3-9927-29BA96F03DAC}.Debug.ActiveCfg = Debug|Win32
+		{4C8454FE-81D3-4CA3-9927-29BA96F03DAC}.Debug.Build.0 = Debug|Win32
+		{4C8454FE-81D3-4CA3-9927-29BA96F03DAC}.Release.ActiveCfg = Release|Win32
+		{4C8454FE-81D3-4CA3-9927-29BA96F03DAC}.Release.Build.0 = Release|Win32
+		{203EC78A-0531-43F0-A636-285439BDE025}.Debug.ActiveCfg = Debug|Win32
+		{203EC78A-0531-43F0-A636-285439BDE025}.Debug.Build.0 = Debug|Win32
+		{203EC78A-0531-43F0-A636-285439BDE025}.Release.ActiveCfg = Release|Win32
+		{203EC78A-0531-43F0-A636-285439BDE025}.Release.Build.0 = Release|Win32
+		{6B231032-3CB5-4EED-9210-810D666A23A0}.Debug.ActiveCfg = Debug|Win32
+		{6B231032-3CB5-4EED-9210-810D666A23A0}.Debug.Build.0 = Debug|Win32
+		{6B231032-3CB5-4EED-9210-810D666A23A0}.Release.ActiveCfg = Release|Win32
+		{6B231032-3CB5-4EED-9210-810D666A23A0}.Release.Build.0 = Release|Win32
+		{DBA4088D-F6F9-4F8F-8820-082A4765C16C}.Debug.ActiveCfg = Debug|Win32
+		{DBA4088D-F6F9-4F8F-8820-082A4765C16C}.Debug.Build.0 = Debug|Win32
+		{DBA4088D-F6F9-4F8F-8820-082A4765C16C}.Release.ActiveCfg = Release|Win32
+		{DBA4088D-F6F9-4F8F-8820-082A4765C16C}.Release.Build.0 = Release|Win32
+		{C2B04507-2521-4801-BF0D-5FD79D6D518C}.Debug.ActiveCfg = Debug|Win32
+		{C2B04507-2521-4801-BF0D-5FD79D6D518C}.Debug.Build.0 = Debug|Win32
+		{C2B04507-2521-4801-BF0D-5FD79D6D518C}.Release.ActiveCfg = Release|Win32
+		{C2B04507-2521-4801-BF0D-5FD79D6D518C}.Release.Build.0 = Release|Win32
+		{631C23CE-6C1D-4875-88F0-85E0A42B36EA}.Debug.ActiveCfg = Debug|Win32
+		{631C23CE-6C1D-4875-88F0-85E0A42B36EA}.Debug.Build.0 = Debug|Win32
+		{631C23CE-6C1D-4875-88F0-85E0A42B36EA}.Release.ActiveCfg = Release|Win32
+		{631C23CE-6C1D-4875-88F0-85E0A42B36EA}.Release.Build.0 = Release|Win32
+		{6FC24387-370C-4561-9582-7A819749E2C5}.Debug.ActiveCfg = Debug|Win32
+		{6FC24387-370C-4561-9582-7A819749E2C5}.Debug.Build.0 = Debug|Win32
+		{6FC24387-370C-4561-9582-7A819749E2C5}.Release.ActiveCfg = Release|Win32
+		{6FC24387-370C-4561-9582-7A819749E2C5}.Release.Build.0 = Release|Win32
+		{E4993E82-D68A-46CA-BAE0-9D35E172E46F}.Debug.ActiveCfg = Debug|Win32
+		{E4993E82-D68A-46CA-BAE0-9D35E172E46F}.Debug.Build.0 = Debug|Win32
+		{E4993E82-D68A-46CA-BAE0-9D35E172E46F}.Release.ActiveCfg = Release|Win32
+		{E4993E82-D68A-46CA-BAE0-9D35E172E46F}.Release.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+	EndGlobalSection
+	GlobalSection(ExtensibilityAddIns) = postSolution
+	EndGlobalSection
+EndGlobal
diff --git a/source/common/.cvsignore b/source/common/.cvsignore
new file mode 100644
index 0000000..fd97528
--- /dev/null
+++ b/source/common/.cvsignore
@@ -0,0 +1,9 @@
+*.d
+libicu*.*
+Debug
+Release
+Makefile
+icucfg.h
+*.ao
+*.o
+*.plg
diff --git a/source/common/Makefile.in b/source/common/Makefile.in
new file mode 100644
index 0000000..38fc238
--- /dev/null
+++ b/source/common/Makefile.in
@@ -0,0 +1,179 @@
+#******************************************************************************
+#
+#   Copyright (C) 1999-2004, International Business Machines
+#   Corporation and others.  All Rights Reserved.
+#
+#******************************************************************************
+## Makefile.in for ICU - icuuc.so
+## Stephen F. Booth
+
+## Source directory information
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+
+top_builddir = ..
+
+## All the flags and other definitions are included here.
+include $(top_builddir)/icudefs.mk
+
+## Build directory information
+subdir = common
+
+## Extra files to remove for 'make clean'
+CLEANFILES = *~ $(DEPS) $(IMPORT_LIB) $(MIDDLE_IMPORT_LIB) $(FINAL_IMPORT_LIB)
+
+## Target information
+
+TARGET_STUBNAME=$(COMMON_STUBNAME)
+
+ifneq ($(ENABLE_STATIC),)
+TARGET = $(LIBDIR)/$(LIBSICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(A)
+endif
+
+ifneq ($(ENABLE_SHARED),)
+SO_TARGET = $(LIBDIR)/$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO)
+ALL_SO_TARGETS = $(SO_TARGET) $(MIDDLE_SO_TARGET) $(FINAL_SO_TARGET)
+
+ifeq ($(ENABLE_SO_VERSION_DATA),1)
+SO_VERSION_DATA = common.res
+endif
+
+ifeq ($(OS390BATCH),1)
+BATCH_TARGET = $(BATCH_COMMON_TARGET)
+BATCH_LIBS = $(BATCH_LIBICUDT) -lm
+endif   # OS390BATCH
+
+endif   # ENABLE_SHARED
+
+ALL_TARGETS = $(TARGET) $(ALL_SO_TARGETS) $(BATCH_TARGET)
+
+DYNAMICCPPFLAGS = $(SHAREDLIBCPPFLAGS)
+DYNAMICCFLAGS = $(SHAREDLIBCFLAGS)
+DYNAMICCXXFLAGS = $(SHAREDLIBCXXFLAGS)
+
+LDFLAGS += $(LDFLAGSICUUC)
+CPPFLAGS += -I. -I$(srcdir) -I$(srcdir)/../i18n $(LIBCPPFLAGS)
+DEFS += -DU_COMMON_IMPLEMENTATION
+
+# $(LIBICUDT) is either stub data or the real DLL common data.
+LIBS = $(LIBICUDT) $(DEFAULT_LIBS)
+
+OBJECTS = putil.o uobject.o cmemory.o umutex.o \
+udata.o ucmndata.o udatamem.o udataswp.o umapfile.o ucol_swp.o \
+uresbund.o uresdata.o resbund.o ucat.o locmap.o uloc.o locid.o \
+uhash.o uhash_us.o \
+ucnv.o ucnv_bld.o ucnv_cb.o ucnv_cnv.o ucnv_err.o ucnv_ext.o ucnv_io.o ucnvlat1.o \
+ucnv_u7.o ucnv_u8.o ucnv_u16.o ucnv_u32.o ucnvscsu.o ucnvbocu.o \
+ucnvmbcs.o ucnv2022.o ucnvhz.o ucnv_lmb.o ucnvisci.o \
+unistr.o utf_impl.o ustring.o ustrcase.o cstring.o ustrfmt.o ustrtrns.o \
+normlzr.o unorm.o unorm_it.o chariter.o schriter.o uchriter.o uiter.o \
+uchar.o uprops.o propname.o ubidi.o ubidiwrt.o ubidiln.o ushape.o unames.o \
+ucln_cmn.o uscript.o usc_impl.o uvector.o ustack.o uvectr32.o ucmp8.o \
+uarrsort.o utrie.o uset.o uniset.o ruleiter.o caniter.o unifilt.o unifunct.o usetiter.o \
+brkiter.o brkdict.o ubrk.o dbbi.o dbbi_tbl.o \
+rbbi.o rbbidata.o rbbinode.o rbbirb.o rbbiscan.o rbbisetb.o rbbistbl.o rbbitblb.o \
+icuserv.o iculserv.o icunotif.o uenum.o ustrenum.o \
+uidna.o usprep.o punycode.o \
+cwchar.o filestrm.o umemstrm.o util.o parsepos.o utrace.o locbased.o
+
+STATIC_OBJECTS = $(OBJECTS:.o=.$(STATIC_O))
+
+DEPS = $(OBJECTS:.o=.d)
+
+## Header files to install
+HEADERS = unicode/*.h $(srcdir)/unicode/*.h
+
+## List of phony targets
+.PHONY : all all-local install install-local clean clean-local	\
+distclean distclean-local install-library install-headers dist	\
+dist-local check check-local
+
+## Clear suffix list
+.SUFFIXES :
+
+## List of standard targets
+all: all-local
+install: install-local
+clean: clean-local
+distclean : distclean-local
+dist: dist-local
+check: all check-local
+
+-include Makefile.local
+
+all-local: $(ALL_TARGETS) unicode/platform.h
+
+install-local: install-headers install-library
+
+install-library: all-local
+	$(MKINSTALLDIRS) $(DESTDIR)$(libdir)
+ifneq ($(ENABLE_STATIC),)
+	$(INSTALL-L) $(TARGET) $(DESTDIR)$(libdir)
+endif
+ifneq ($(ENABLE_SHARED),)
+	$(INSTALL-L) $(FINAL_SO_TARGET) $(DESTDIR)$(libdir)
+ifneq ($(FINAL_SO_TARGET),$(SO_TARGET))
+	cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(SO_TARGET)) && ln -s $(notdir $(FINAL_SO_TARGET)) $(notdir $(SO_TARGET))
+ifneq ($(FINAL_SO_TARGET),$(MIDDLE_SO_TARGET))
+	cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(MIDDLE_SO_TARGET)) && ln -s $(notdir $(FINAL_SO_TARGET)) $(notdir $(MIDDLE_SO_TARGET))
+endif
+endif
+endif
+ifneq ($(IMPORT_LIB_EXT),)
+	$(INSTALL-L) $(FINAL_IMPORT_LIB) $(DESTDIR)$(libdir)
+	cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(IMPORT_LIB)) && ln -s $(notdir $(FINAL_IMPORT_LIB)) $(notdir $(IMPORT_LIB))
+ifneq ($(MIDDLE_IMPORT_LIB),$(FINAL_IMPORT_LIB))
+	cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(MIDDLE_IMPORT_LIB)) && ln -s $(notdir $(FINAL_IMPORT_LIB)) $(notdir $(MIDDLE_IMPORT_LIB))
+endif
+endif
+
+install-headers:
+	$(MKINSTALLDIRS) $(DESTDIR)$(includedir)/unicode
+	@for file in $(HEADERS); do \
+	 echo "$(INSTALL_DATA) $$file $(DESTDIR)$(includedir)/unicode"; \
+	 $(INSTALL_DATA) $$file $(DESTDIR)$(includedir)/unicode || exit; \
+	done
+
+dist-local:
+
+clean-local:
+	test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
+	$(RMV) $(OBJECTS) $(STATIC_OBJECTS) $(ALL_TARGETS) $(SO_VERSION_DATA)
+
+distclean-local: clean-local
+	$(RMV) Makefile icucfg.h unicode/platform.h
+
+check-local:
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) \
+	 && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+unicode/platform.h: $(srcdir)/unicode/platform.h.in $(top_builddir)/config.status
+	cd $(top_builddir) \
+	 && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+ifneq ($(ENABLE_STATIC),)
+$(TARGET): $(TARGET)($(STATIC_OBJECTS))
+	$(RANLIB) $@
+endif
+
+ifneq ($(ENABLE_SHARED),)
+$(FINAL_SO_TARGET): $(OBJECTS) $(SO_VERSION_DATA)
+	$(SHLIB.cc) $(LD_SONAME) $(OUTOPT)$@ $^ $(LIBS)
+
+ifeq ($(OS390BATCH),1)
+$(BATCH_TARGET): $(OBJECTS)
+	$(SHLIB.cc) $(LD_SONAME) $(OUTOPT)$@ $^ $(BATCH_LIBS)
+endif   # OS390BATCH
+
+endif   # ENABLE_SHARED
+
+ifeq (,$(MAKECMDGOALS))
+-include $(DEPS)
+else
+ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
+-include $(DEPS)
+endif
+endif
+
diff --git a/source/common/brkdict.cpp b/source/common/brkdict.cpp
new file mode 100644
index 0000000..6fc6cc6
--- /dev/null
+++ b/source/common/brkdict.cpp
@@ -0,0 +1,246 @@
+/*
+**********************************************************************
+*   Copyright (C) 1999-2000 IBM and others. All rights reserved.
+**********************************************************************
+*   Date        Name        Description
+*   12/1/99     rtg         Ported from Java
+*   01/13/2000  helena      Added UErrorCode to ctors.
+**********************************************************************
+*/
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_BREAK_ITERATION
+
+#include "unicode/resbund.h"
+#include "brkdict.h"
+#include "cmemory.h"
+
+U_NAMESPACE_BEGIN
+
+//=================================================================================
+// deserialization
+//=================================================================================
+
+BreakDictionary::BreakDictionary(const char* /*dictionaryFilename*/, UErrorCode& status)
+ :  columnMap(NULL),
+    table(NULL),
+    rowIndex(NULL),
+    rowIndexFlags(NULL),
+    rowIndexFlagsIndex(NULL),
+    rowIndexShifts(NULL)
+{
+    if (U_FAILURE(status)) return;
+    
+    ResourceBundle th((char *)0, Locale("th"), status);
+
+    if (U_FAILURE(status)) return;
+
+    ResourceBundle th_dict = th.get("BreakDictionaryData", status);
+    if (U_FAILURE(status)) return;
+
+    int32_t len;
+    const uint8_t * data = th_dict.getBinary(len, status);
+    if (U_FAILURE(status)) return;
+
+    UMemoryStream* dictionaryStream = uprv_mstrm_openBuffer(data, len);
+
+    if (dictionaryStream == 0) {
+        status = U_FILE_ACCESS_ERROR;
+        return;
+    }
+    readDictionaryFile(dictionaryStream);
+    uprv_mstrm_close(dictionaryStream);
+}
+
+BreakDictionary::~BreakDictionary()
+{
+    ucmp8_close(columnMap);
+    uprv_free(table);
+    uprv_free(rowIndex);
+    uprv_free(rowIndexFlags);
+    uprv_free(rowIndexFlagsIndex);
+    uprv_free(rowIndexShifts);
+}
+
+// macros to support readDictionaryFile.  The data files originated from a Java
+// program, and Java always writes data out in big-endian format.  These macros will
+// byte-swap the data for appropriate use on Windows.
+
+#if U_IS_BIG_ENDIAN
+#define SWAP32(x)
+#define SWAP16(x)
+#else
+#define SWAP32(x) x = (uint32_t)((x >> 24 & 0xff) | (x >> 8 & 0xff00) | (x << 8 & 0xff0000) | (x << 24 & 0xff000000))
+#define SWAP16(x) x = (uint16_t)((x << 8 & 0xff00) | (x >> 8 & 0xff))
+#endif
+
+void
+BreakDictionary::readDictionaryFile(UMemoryStream* in)
+{
+    int32_t l;
+    int32_t version;
+
+    int i;
+
+    // read in the version number (right now we just ignore it)
+    uprv_mstrm_read(in, &version, 4);
+
+    // read in the column map (this is serialized in its internal form:
+    // an index array followed by a data array)
+    uprv_mstrm_read(in, &l, 4);
+    SWAP32(l);
+    uint16_t* temp = (uint16_t*) uprv_malloc(sizeof(uint16_t)*l);
+    uprv_mstrm_read(in, temp, l * sizeof (int16_t) );
+    for (i = 0; i < l; i++) {
+        SWAP16(temp[i]);
+    }
+    uprv_mstrm_read(in, &l, 4);
+    SWAP32(l);
+    int8_t* temp2 = (int8_t*) uprv_malloc(sizeof(int8_t)*l);
+    uprv_mstrm_read(in, temp2, l);
+    columnMap = ucmp8_openAdopt(temp, temp2, l);
+
+    // read in numCols and numColGroups
+    uprv_mstrm_read(in, &numCols, 4);
+    SWAP32(numCols);
+    uprv_mstrm_read(in, &numColGroups, 4);
+    SWAP32(numColGroups);
+
+    // read in the row-number index
+    uprv_mstrm_read(in, &l, 4);
+    SWAP32(l);
+    rowIndex = (int16_t *)uprv_malloc(l*2);
+    uprv_mstrm_read(in, rowIndex, l * sizeof (int16_t) );
+    for (i = 0; i < l; i++) {
+        SWAP16(rowIndex[i]);
+    }
+
+    // load in the populated-cells bitmap: index first, then bitmap list
+    uprv_mstrm_read(in, &l, 4);
+    SWAP32(l);
+    rowIndexFlagsIndex = (int16_t *)uprv_malloc(l*2);
+    uprv_mstrm_read(in, rowIndexFlagsIndex, l * sizeof(int16_t) );
+    for (i = 0; i < l; i++) {
+        SWAP16(rowIndexFlagsIndex[i]);
+    }
+    uprv_mstrm_read(in, &l, 4);
+    SWAP32(l);
+    rowIndexFlags = (int32_t *)uprv_malloc(l*4);
+    uprv_mstrm_read(in, rowIndexFlags, l * sizeof(int32_t));
+    for (i = 0; i < l; i++) {
+        SWAP32(rowIndexFlags[i]);
+    }
+
+    // load in the row-shift index
+    uprv_mstrm_read(in, &l, 4);
+    SWAP32(l);
+    rowIndexShifts = (int8_t *)uprv_malloc(l);
+    uprv_mstrm_read(in, rowIndexShifts, l);
+
+    // finally, load in the actual state table
+    uprv_mstrm_read(in, &l, 4);
+    SWAP32(l);
+    table = (int16_t *)uprv_malloc(l*2);
+    uprv_mstrm_read(in, table, l * sizeof(int16_t) );
+    for (i = 0; i < l; i++) {
+        SWAP16(table[i]);
+    }
+
+    // the reverse column map occurs next in the file.  In the C/C++ code, for the
+    // time being, we're not going to worry about that.
+}
+
+//=================================================================================
+// access to the words
+//=================================================================================
+
+/**
+ * Uses the column map to map the character to a column number, then
+ * passes the row and column number to the other version of at()
+ * @param row The current state
+ * @param ch The character whose column we're interested in
+ * @return The new state to transition to
+ */
+int16_t
+BreakDictionary::at(int32_t row, UChar ch) const
+{
+    int16_t col = ucmp8_get(columnMap, ch);
+    return at(row, (int32_t)col);
+}
+
+/**
+ * Returns the value in the cell with the specified (logical) row and
+ * column numbers.  In DictionaryBasedBreakIterator, the row number is
+ * a state number, the column number is an input, and the return value
+ * is the row number of the new state to transition to.  (0 is the
+ * "error" state, and -1 is the "end of word" state in a dictionary)
+ * @param row The row number of the current state
+ * @param col The column number of the input character (0 means "not a
+ * dictionary character")
+ * @return The row number of the new state to transition to
+ */
+int16_t
+BreakDictionary::at(int32_t row, int32_t col) const
+{
+    if (cellIsPopulated(row, col)) {
+        // we map from logical to physical row number by looking up the
+        // mapping in rowIndex; we map from logical column number to
+        // physical column number by looking up a shift value for this
+        // logical row and offsetting the logical column number by
+        // the shift amount.  Then we can use internalAt() to actually
+        // get the value out of the table.
+        return internalAt(rowIndex[row], col + rowIndexShifts[row]);
+    }
+    else {
+        return 0;
+    }
+}
+
+//=================================================================================
+// implementation
+//=================================================================================
+/**
+ * Given (logical) row and column numbers, returns true if the
+ * cell in that position is populated
+ */
+UBool
+BreakDictionary::cellIsPopulated(int32_t row, int32_t col) const
+{
+    // look up the entry in the bitmap index for the specified row.
+    // If it's a negative number, it's the column number of the only
+    // populated cell in the row
+    if (rowIndexFlagsIndex[row] < 0) {
+        return col == -rowIndexFlagsIndex[row];
+    }
+
+    // if it's a positive number, it's the offset of an entry in the bitmap
+    // list.  If the table is more than 32 columns wide, the bitmap is stored
+    // successive entries in the bitmap list, so we have to divide the column
+    // number by 32 and offset the number we got out of the index by the result.
+    // Once we have the appropriate piece of the bitmap, test the appropriate
+    // bit and return the result.
+    else {
+        int32_t flags = rowIndexFlags[rowIndexFlagsIndex[row] + (col >> 5)];
+        return (flags & (1 << (col & 0x1f))) != 0;
+    }
+}
+
+/**
+ * Implementation of at() when we know the specified cell is populated.
+ * @param row The PHYSICAL row number of the cell
+ * @param col The PHYSICAL column number of the cell
+ * @return The value stored in the cell
+ */
+int16_t
+BreakDictionary::internalAt(int32_t row, int32_t col) const
+{
+    // the table is a one-dimensional array, so this just does the math necessary
+    // to treat it as a two-dimensional array (we don't just use a two-dimensional
+    // array because two-dimensional arrays are inefficient in Java)
+    return table[row * numCols + col];
+}
+
+U_NAMESPACE_END
+
+#endif /* #if !UCONFIG_NO_BREAK_ITERATION */
diff --git a/source/common/brkdict.h b/source/common/brkdict.h
new file mode 100644
index 0000000..3daaf4f
--- /dev/null
+++ b/source/common/brkdict.h
@@ -0,0 +1,175 @@
+/*
+**********************************************************************
+*   Copyright (C) 1999-2000 IBM and others. All rights reserved.
+**********************************************************************
+*   Date        Name        Description
+*   12/1/99     rtg         Ported from Java
+*   01/13/2000  helena      Added UErrorCode to ctors.
+**********************************************************************
+*/
+
+#ifndef BRKDICT_H
+#define BRKDICT_H
+
+#include "unicode/utypes.h"
+#include "unicode/uobject.h"
+#include "ucmp8.h"
+#include "umemstrm.h"
+
+U_NAMESPACE_BEGIN
+
+/**
+ * This is the class that represents the list of known words used by
+ * DictionaryBasedBreakIterator.  The conceptual data structure used
+ * here is a trie: there is a node hanging off the root node for every
+ * letter that can start a word.  Each of these nodes has a node hanging
+ * off of it for every letter that can be the second letter of a word
+ * if this node is the first letter, and so on.  The trie is represented
+ * as a two-dimensional array that can be treated as a table of state
+ * transitions.  Indexes are used to compress this array, taking
+ * advantage of the fact that this array will always be very sparse.
+ */
+class BreakDictionary : public UMemory {
+    //=================================================================================
+    // data members
+    //=================================================================================
+private:
+
+    /**
+     * Maps from characters to column numbers.  The main use of this is to
+     * avoid making room in the array for empty columns.
+     */
+    CompactByteArray* columnMap;
+
+    /**
+     * The number of actual columns in the table
+     */
+    int32_t numCols;
+
+    /**
+     * Columns are organized into groups of 32.  This says how many
+     * column groups.  (We could calculate this, but we store the
+     * value to avoid having to repeatedly calculate it.)
+     */
+    int32_t numColGroups;
+
+    /**
+     * The actual compressed state table.  Each conceptual row represents
+     * a state, and the cells in it contain the row numbers of the states
+     * to transition to for each possible letter.  0 is used to indicate
+     * an illegal combination of letters (i.e., the error state).  The
+     * table is compressed by eliminating all the unpopulated (i.e., zero)
+     * cells.  Multiple conceptual rows can then be doubled up in a single
+     * physical row by sliding them up and possibly shifting them to one
+     * side or the other so the populated cells don't collide.  Indexes
+     * are used to identify unpopulated cells and to locate populated cells.
+     */
+    int16_t* table;
+
+    /**
+     * This index maps logical row numbers to physical row numbers
+     */
+    int16_t* rowIndex;
+
+    /**
+     * A bitmap is used to tell which cells in the comceptual table are
+     * populated.  This array contains all the unique bit combinations
+     * in that bitmap.  If the table is more than 32 columns wide,
+     * successive entries in this array are used for a single row.
+     */
+    int32_t* rowIndexFlags;
+
+    /**
+     * This index maps from a logical row number into the bitmap table above.
+     * (This keeps us from storing duplicate bitmap combinations.)  Since there
+     * are a lot of rows with only one populated cell, instead of wasting space
+     * in the bitmap table, we just store a negative number in this index for
+     * rows with one populated cell.  The absolute value of that number is
+     * the column number of the populated cell.
+     */
+    int16_t* rowIndexFlagsIndex;
+
+    /**
+     * For each logical row, this index contains a constant that is added to
+     * the logical column number to get the physical column number
+     */
+    int8_t* rowIndexShifts;
+
+    //=================================================================================
+    // deserialization
+    //=================================================================================
+
+public:
+    /**
+     * Constructor.  Creates the BreakDictionary by using readDictionaryFile() to
+     * load the dictionary tables from the disk.
+     * @param dictionaryFilename The name of the dictionary file
+     * @param status for errors if it occurs
+     */
+    BreakDictionary(const char* dictionaryFilename, UErrorCode& status);
+
+    /**
+     * Destructor.
+     */
+    ~BreakDictionary();
+
+    /**
+     * Reads the dictionary file on the disk and constructs the appropriate in-memory
+     * representation.
+     * @param in The given memory stream
+     */
+    void readDictionaryFile(UMemoryStream* in);
+
+    //=================================================================================
+    // access to the words
+    //=================================================================================
+
+    /**
+     * Uses the column map to map the character to a column number, then
+     * passes the row and column number to the other version of at()
+     * @param row The current state
+     * @param ch The character whose column we're interested in
+     * @return The new state to transition to
+     */
+    int16_t at(int32_t row, UChar ch) const;
+
+    /**
+     * Returns the value in the cell with the specified (logical) row and
+     * column numbers.  In DictionaryBasedBreakIterator, the row number is
+     * a state number, the column number is an input, and the return value
+     * is the row number of the new state to transition to.  (0 is the
+     * "error" state, and -1 is the "end of word" state in a dictionary)
+     * @param row The row number of the current state
+     * @param col The column number of the input character (0 means "not a
+     * dictionary character")
+     * @return The row number of the new state to transition to
+     */
+    int16_t at(int32_t row, int32_t col) const;
+
+private:
+    /**
+     * Given (logical) row and column numbers, returns true if the
+     * cell in that position is populated
+     * @param row The LOGICAL row number of the cell
+     * @param col The PHYSICAL row number of the cell
+     * @return true if the cell in that position is populated
+     */
+    UBool cellIsPopulated(int32_t row, int32_t col) const;
+
+    /**
+     * Implementation of at() when we know the specified cell is populated.
+     * @param row The PHYSICAL row number of the cell
+     * @param col The PHYSICAL column number of the cell
+     * @return The value stored in the cell
+     */
+    int16_t internalAt(int32_t row, int32_t col) const;
+
+    // the following methods are never meant to be called and so are not defined
+    // (if you don't declare them, you get default implementations)
+    BreakDictionary(const BreakDictionary& that);
+    BreakDictionary& operator=(const BreakDictionary& that);
+};
+
+U_NAMESPACE_END
+
+#endif
diff --git a/source/common/brkiter.cpp b/source/common/brkiter.cpp
new file mode 100644
index 0000000..36d72f8
--- /dev/null
+++ b/source/common/brkiter.cpp
@@ -0,0 +1,531 @@
+/*
+*******************************************************************************
+* Copyright (C) 1997-2004, International Business Machines Corporation and    *
+* others. All Rights Reserved.                                                *
+*******************************************************************************
+*
+* File TXTBDRY.CPP
+*
+* Modification History:
+*
+*   Date        Name        Description
+*   02/18/97    aliu        Converted from OpenClass.  Added DONE.
+*   01/13/2000  helena      Added UErrorCode parameter to createXXXInstance methods.
+*****************************************************************************************
+*/
+
+// *****************************************************************************
+// This file was generated from the java source file BreakIterator.java
+// *****************************************************************************
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_BREAK_ITERATION
+
+#include "unicode/dbbi.h"
+#include "unicode/brkiter.h"
+#include "unicode/udata.h"
+#include "unicode/resbund.h"
+#include "cstring.h"
+#include "mutex.h"
+#include "iculserv.h"
+#include "locbased.h"
+
+// *****************************************************************************
+// class BreakIterator
+// This class implements methods for finding the location of boundaries in text.
+// Instances of BreakIterator maintain a current position and scan over text
+// returning the index of characters where boundaries occur.
+// *****************************************************************************
+
+U_NAMESPACE_BEGIN
+
+const int32_t BreakIterator::DONE = (int32_t)-1;
+
+// -------------------------------------
+
+// Creates a break iterator for word breaks.
+BreakIterator*
+BreakIterator::createWordInstance(const Locale& key, UErrorCode& status)
+{
+    return createInstance(key, UBRK_WORD, status);
+}
+
+BreakIterator*
+BreakIterator::makeWordInstance(const Locale& key, UErrorCode& status)
+{
+    // WARNING: This routine is currently written specifically to handle only the
+    // default rules files and the alternate rules files for Thai.  This function
+    // will have to be made fully general at some time in the future!
+    BreakIterator* result = NULL;
+    const char* filename = "word";
+
+    if (U_FAILURE(status))
+        return NULL;
+
+    if (!uprv_strcmp(key.getLanguage(), "th"))
+    {
+        filename = "word_th";
+    }
+
+    UDataMemory* file = udata_open(NULL, "brk", filename, &status);
+    if (U_FAILURE(status)) {
+        return NULL;
+    }
+    // The UDataMemory is adopted by the break iterator.
+
+    if(!uprv_strcmp(filename, "word_th")) {
+        filename = "thaidict.brk";
+        result = new DictionaryBasedBreakIterator(file, filename, status);
+    }
+    else {
+        result = new RuleBasedBreakIterator(file, status);
+    }
+    if (U_FAILURE(status)) {   // Sometimes redundant check, but simple.
+        if (result != NULL) {
+            delete result;
+        }
+        return NULL;
+    }
+    if (result == NULL) {
+        udata_close(file);
+        status = U_MEMORY_ALLOCATION_ERROR;
+    }
+    
+    return result;
+}
+
+// -------------------------------------
+
+// Creates a break iterator  for line breaks.
+BreakIterator*
+BreakIterator::createLineInstance(const Locale& key, UErrorCode& status)
+{
+    return createInstance(key, UBRK_LINE, status);
+}
+
+BreakIterator*
+BreakIterator::makeLineInstance(const Locale& key, UErrorCode& status)
+{
+    // WARNING: This routine is currently written specifically to handle only the
+    // default rules files and the alternate rules files for Thai.  This function
+    // will have to be made fully general at some time in the future!
+    BreakIterator* result = NULL;
+    const char* filename = "line";
+
+    if (U_FAILURE(status))
+        return NULL;
+
+    if (!uprv_strcmp(key.getLanguage(), "th"))
+    {
+        filename = "line_th";
+    }
+
+    UDataMemory* file = udata_open(NULL, "brk", filename, &status);
+    if (U_FAILURE(status)) {
+        return NULL;
+    }
+    // The UDataMemory is adopted by the break iterator.
+
+    if (!uprv_strcmp(key.getLanguage(), "th")) {
+        filename = "thaidict.brk";
+        result = new DictionaryBasedBreakIterator(file, filename, status);
+    }
+    else {
+        result = new RuleBasedBreakIterator(file, status);
+    }
+    if (U_FAILURE(status)) {   // Sometimes redundant check, but simple.
+        if (result != NULL) {
+            delete result;
+        }
+        return NULL;
+    }
+    if (result == NULL) {
+        udata_close(file);
+        status = U_MEMORY_ALLOCATION_ERROR;
+    }
+    return result;
+}
+
+// -------------------------------------
+
+// Creates a break iterator  for character breaks.
+BreakIterator*
+BreakIterator::createCharacterInstance(const Locale& key, UErrorCode& status)
+{
+    return createInstance(key, UBRK_CHARACTER, status);
+}
+
+BreakIterator*
+BreakIterator::makeCharacterInstance(const Locale& /* key */, UErrorCode& status)
+{
+    // WARNING: This routine is currently written specifically to handle only the
+    // default rules files and the alternate rules files for Thai.  This function
+    // will have to be made fully general at some time in the future!
+    BreakIterator* result = NULL;
+    static const char filename[] = "char";
+
+    if (U_FAILURE(status))
+        return NULL;
+    UDataMemory* file = udata_open(NULL, "brk", filename, &status);
+    if (U_FAILURE(status)) {
+        return NULL;
+    }
+    // The UDataMemory is adopted by the break iterator.
+
+    result = new RuleBasedBreakIterator(file, status);
+    
+    if (U_FAILURE(status)) {   // Sometimes redundant check, but simple.
+        if (result != NULL) {
+            delete result;
+        }
+        return NULL;
+    }
+    if (result == NULL) {
+        udata_close(file);
+        status = U_MEMORY_ALLOCATION_ERROR;
+    }
+    return result;
+}
+
+// -------------------------------------
+
+// Creates a break iterator  for sentence breaks.
+BreakIterator*
+BreakIterator::createSentenceInstance(const Locale& key, UErrorCode& status)
+{
+    return createInstance(key, UBRK_SENTENCE, status);
+}
+
+BreakIterator*
+BreakIterator::makeSentenceInstance(const Locale& /*key */, UErrorCode& status)
+{
+    // WARNING: This routine is currently written specifically to handle only the
+    // default rules files and the alternate rules files for Thai.  This function
+    // will have to be made fully general at some time in the future!
+    BreakIterator* result = NULL;
+    static const char filename[] = "sent";
+
+    if (U_FAILURE(status))
+        return NULL;
+    UDataMemory* file = udata_open(NULL, "brk", filename, &status);
+    if (U_FAILURE(status)) {
+        return NULL;
+    }
+    // The UDataMemory is adopted by the break iterator.
+
+    result = new RuleBasedBreakIterator(file, status);
+    if (U_FAILURE(status)) {   // Sometimes redundant check, but simple.
+        if (result != NULL) {
+            delete result;
+        }
+        return NULL;
+    }
+    if (result == NULL) {
+        udata_close(file);
+        status = U_MEMORY_ALLOCATION_ERROR;
+    }
+
+    return result;
+}
+
+// -------------------------------------
+
+// Creates a break iterator for title casing breaks.
+BreakIterator*
+BreakIterator::createTitleInstance(const Locale& key, UErrorCode& status)
+{
+    return createInstance(key, UBRK_TITLE, status);
+}
+
+BreakIterator*
+BreakIterator::makeTitleInstance(const Locale& /* key */, UErrorCode& status)
+{
+    // WARNING: This routine is currently written specifically to handle only the
+    // default rules files.  This function will have to be made fully general
+    // at some time in the future!
+    BreakIterator* result = NULL;
+    static const char filename[] = "title";
+
+    if (U_FAILURE(status))
+        return NULL;
+    UDataMemory* file = udata_open(NULL, "brk", filename, &status);
+    if (U_FAILURE(status)) {
+        return NULL;
+    }
+    // The UDataMemory is adopted by the break iterator.
+
+    result = new RuleBasedBreakIterator(file, status);
+    if (U_FAILURE(status)) {   // Sometimes redundant check, but simple.
+        if (result != NULL) {
+            delete result;
+        }
+        return NULL;
+    }
+    if (result == NULL) {
+        udata_close(file);
+        status = U_MEMORY_ALLOCATION_ERROR;
+    }
+
+    return result;
+}
+
+// -------------------------------------
+
+// Gets all the available locales that has localized text boundary data.
+const Locale*
+BreakIterator::getAvailableLocales(int32_t& count)
+{
+    return Locale::getAvailableLocales(count);
+}
+
+// -------------------------------------
+// Gets the objectLocale display name in the default locale language.
+UnicodeString&
+BreakIterator::getDisplayName(const Locale& objectLocale,
+                             UnicodeString& name)
+{
+    return objectLocale.getDisplayName(name);
+}
+
+// -------------------------------------
+// Gets the objectLocale display name in the displayLocale language.
+UnicodeString&
+BreakIterator::getDisplayName(const Locale& objectLocale,
+                             const Locale& displayLocale,
+                             UnicodeString& name)
+{
+    return objectLocale.getDisplayName(displayLocale, name);
+}
+
+// ------------------------------------------
+//
+// Default constructor and destructor
+//
+//-------------------------------------------
+
+BreakIterator::BreakIterator()
+{
+    fBufferClone = FALSE;
+    *validLocale = *actualLocale = 0;
+}
+
+BreakIterator::~BreakIterator()
+{
+}
+
+// ------------------------------------------
+//
+// Registration
+//
+//-------------------------------------------
+
+static ICULocaleService* gService = NULL;
+
+// -------------------------------------
+
+class ICUBreakIteratorFactory : public ICUResourceBundleFactory {
+protected:
+    virtual UObject* handleCreate(const Locale& loc, int32_t kind, const ICUService* /*service*/, UErrorCode& status) const {
+        return BreakIterator::makeInstance(loc, kind, status);
+    }
+};
+
+// -------------------------------------
+
+class ICUBreakIteratorService : public ICULocaleService {
+public:
+    ICUBreakIteratorService()
+        : ICULocaleService("Break Iterator")
+    {
+        UErrorCode status = U_ZERO_ERROR;
+        registerFactory(new ICUBreakIteratorFactory(), status);
+    }
+    
+    virtual UObject* cloneInstance(UObject* instance) const {
+        return ((BreakIterator*)instance)->clone();
+    }
+    
+    virtual UObject* handleDefault(const ICUServiceKey& key, UnicodeString* /*actualID*/, UErrorCode& status) const {
+        LocaleKey& lkey = (LocaleKey&)key;
+        int32_t kind = lkey.kind();
+        Locale loc;
+        lkey.currentLocale(loc);
+        return BreakIterator::makeInstance(loc, kind, status);
+    }
+    
+    virtual UBool isDefault() const {
+        return countFactories() == 1;
+    }
+};
+
+// -------------------------------------
+
+static ICULocaleService* 
+getService(void)
+{
+    UBool needsInit;
+    umtx_lock(NULL);
+    needsInit = (UBool)(gService == NULL);
+    umtx_unlock(NULL);
+    
+    if (needsInit) {
+        ICULocaleService  *tService = new ICUBreakIteratorService();
+        umtx_lock(NULL);
+        if (gService == NULL) {
+            gService = tService;
+            tService = NULL;
+        }
+        umtx_unlock(NULL);
+        delete tService;
+    }
+    return gService;
+}
+
+// -------------------------------------
+
+static UBool
+hasService(void) 
+{
+    Mutex mutex;
+    return gService != NULL;
+}
+
+// -------------------------------------
+
+BreakIterator*
+BreakIterator::createInstance(const Locale& loc, UBreakIteratorType kind, UErrorCode& status)
+{
+    if (U_FAILURE(status)) {
+        return NULL;
+    }
+    
+    u_init(&status);
+    if (hasService()) {
+        Locale actualLoc;
+        BreakIterator *result = (BreakIterator*)gService->get(loc, kind, &actualLoc, status);
+        // TODO: The way the service code works in ICU 2.8 is that if
+        // there is a real registered break iterator, the actualLoc
+        // will be populated, but if the handleDefault path is taken
+        // (because nothing is registered that can handle the
+        // requested locale) then the actualLoc comes back empty.  In
+        // that case, the returned object already has its actual/valid
+        // locale data populated (by makeInstance, which is what
+        // handleDefault calls), so we don't touch it.  YES, A COMMENT
+        // THIS LONG is a sign of bad code -- so the action item is to
+        // revisit this in ICU 3.0 and clean it up/fix it/remove it.
+        if (U_SUCCESS(status) && (result != NULL) && *actualLoc.getName() != 0) {
+            U_LOCALE_BASED(locBased, *result);
+            locBased.setLocaleIDs(actualLoc.getName(), actualLoc.getName());
+        }
+        return result;
+    } else {
+        return makeInstance(loc, kind, status);
+    }
+}
+
+// -------------------------------------
+
+URegistryKey
+BreakIterator::registerInstance(BreakIterator* toAdopt, const Locale& locale, UBreakIteratorType kind, UErrorCode& status) 
+{
+    return getService()->registerInstance(toAdopt, locale, kind, status);
+}
+
+// -------------------------------------
+
+UBool 
+BreakIterator::unregister(URegistryKey key, UErrorCode& status) 
+{
+    if (U_SUCCESS(status)) {
+        if (hasService()) {
+            return gService->unregister(key, status);
+        }
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+    }
+    return FALSE;
+}
+
+// -------------------------------------
+
+StringEnumeration* 
+BreakIterator::getAvailableLocales(void)
+{
+  return getService()->getAvailableLocales();
+}
+
+// -------------------------------------
+
+BreakIterator* 
+BreakIterator::makeInstance(const Locale& loc, int32_t kind, UErrorCode& status)
+{
+
+	if (U_FAILURE(status)) {
+		return NULL;
+	}
+
+    BreakIterator *result = NULL;
+    switch (kind) {
+    case UBRK_CHARACTER: 
+        result = BreakIterator::makeCharacterInstance(loc, status);
+        break;
+    case UBRK_WORD:
+        result = BreakIterator::makeWordInstance(loc, status);
+        break;
+    case UBRK_LINE:
+        result = BreakIterator::makeLineInstance(loc, status);
+        break;
+    case UBRK_SENTENCE:
+        result = BreakIterator::makeSentenceInstance(loc, status);
+        break;
+    case UBRK_TITLE:
+        result = BreakIterator::makeTitleInstance(loc, status);
+        break;
+    default:
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+    }
+
+	if (U_FAILURE(status)) {
+		return NULL;
+	}
+
+    // this is more of a placeholder. All the break iterators have the same actual locale: root
+    // except the Thai one
+    ResourceBundle res(NULL, loc, status);
+    U_LOCALE_BASED(locBased, *result);
+    locBased.setLocaleIDs(res.getLocale(ULOC_VALID_LOCALE, status).getName(),
+                          (uprv_strcmp(loc.getLanguage(), "th") == 0) ?
+                          "th" : "root");
+    return result;
+}
+
+Locale 
+BreakIterator::getLocale(ULocDataLocaleType type, UErrorCode& status) const {
+    U_LOCALE_BASED(locBased, *this);
+    return locBased.getLocale(type, status);
+}
+
+const char *
+BreakIterator::getLocaleID(ULocDataLocaleType type, UErrorCode& status) const {
+    U_LOCALE_BASED(locBased, *this);
+    return locBased.getLocaleID(type, status);
+}
+
+U_NAMESPACE_END
+
+// defined in ucln_cmn.h
+
+/**
+ * Release all static memory held by breakiterator.  
+ */
+U_CFUNC UBool breakiterator_cleanup(void) {
+    if (gService) {
+        delete gService;
+        gService = NULL;
+    }
+    return TRUE;
+}
+
+#endif /* #if !UCONFIG_NO_BREAK_ITERATION */
+
+//eof
diff --git a/source/common/caniter.cpp b/source/common/caniter.cpp
new file mode 100644
index 0000000..05acfc1
--- /dev/null
+++ b/source/common/caniter.cpp
@@ -0,0 +1,703 @@
+/*
+ *****************************************************************************
+ * Copyright (C) 1996-2003, International Business Machines Corporation and  *
+ * others. All Rights Reserved.                                              *
+ *****************************************************************************
+ */
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_NORMALIZATION
+
+#include "unicode/uset.h"
+#include "unicode/ustring.h"
+#include "hash.h"
+#include "unormimp.h"
+#include "unicode/caniter.h"
+#include "unicode/normlzr.h"
+#include "unicode/uchar.h"
+#include "cmemory.h"
+
+/**
+ * This class allows one to iterate through all the strings that are canonically equivalent to a given
+ * string. For example, here are some sample results:
+Results for: {LATIN CAPITAL LETTER A WITH RING ABOVE}{LATIN SMALL LETTER D}{COMBINING DOT ABOVE}{COMBINING CEDILLA}
+1: \u0041\u030A\u0064\u0307\u0327
+ = {LATIN CAPITAL LETTER A}{COMBINING RING ABOVE}{LATIN SMALL LETTER D}{COMBINING DOT ABOVE}{COMBINING CEDILLA}
+2: \u0041\u030A\u0064\u0327\u0307
+ = {LATIN CAPITAL LETTER A}{COMBINING RING ABOVE}{LATIN SMALL LETTER D}{COMBINING CEDILLA}{COMBINING DOT ABOVE}
+3: \u0041\u030A\u1E0B\u0327
+ = {LATIN CAPITAL LETTER A}{COMBINING RING ABOVE}{LATIN SMALL LETTER D WITH DOT ABOVE}{COMBINING CEDILLA}
+4: \u0041\u030A\u1E11\u0307
+ = {LATIN CAPITAL LETTER A}{COMBINING RING ABOVE}{LATIN SMALL LETTER D WITH CEDILLA}{COMBINING DOT ABOVE}
+5: \u00C5\u0064\u0307\u0327
+ = {LATIN CAPITAL LETTER A WITH RING ABOVE}{LATIN SMALL LETTER D}{COMBINING DOT ABOVE}{COMBINING CEDILLA}
+6: \u00C5\u0064\u0327\u0307
+ = {LATIN CAPITAL LETTER A WITH RING ABOVE}{LATIN SMALL LETTER D}{COMBINING CEDILLA}{COMBINING DOT ABOVE}
+7: \u00C5\u1E0B\u0327
+ = {LATIN CAPITAL LETTER A WITH RING ABOVE}{LATIN SMALL LETTER D WITH DOT ABOVE}{COMBINING CEDILLA}
+8: \u00C5\u1E11\u0307
+ = {LATIN CAPITAL LETTER A WITH RING ABOVE}{LATIN SMALL LETTER D WITH CEDILLA}{COMBINING DOT ABOVE}
+9: \u212B\u0064\u0307\u0327
+ = {ANGSTROM SIGN}{LATIN SMALL LETTER D}{COMBINING DOT ABOVE}{COMBINING CEDILLA}
+10: \u212B\u0064\u0327\u0307
+ = {ANGSTROM SIGN}{LATIN SMALL LETTER D}{COMBINING CEDILLA}{COMBINING DOT ABOVE}
+11: \u212B\u1E0B\u0327
+ = {ANGSTROM SIGN}{LATIN SMALL LETTER D WITH DOT ABOVE}{COMBINING CEDILLA}
+12: \u212B\u1E11\u0307
+ = {ANGSTROM SIGN}{LATIN SMALL LETTER D WITH CEDILLA}{COMBINING DOT ABOVE}
+ *<br>Note: the code is intended for use with small strings, and is not suitable for larger ones,
+ * since it has not been optimized for that situation.
+ *@author M. Davis
+ *@draft
+ */
+#if 0
+static UBool PROGRESS = FALSE;
+
+#include <stdio.h>
+#include "unicode/translit.h"
+
+UErrorCode status = U_ZERO_ERROR;
+
+// Just for testing - remove, not thread safe.
+static const char* UToS(const UnicodeString &source) {
+  static char buffer[256];
+  buffer[source.extract(0, source.length(), buffer)] = 0;
+  return buffer;
+}
+
+static const UnicodeString &Tr(const UnicodeString &source) {
+  static Transliterator *NAME = Transliterator::createInstance("name", UTRANS_FORWARD, status);
+  static UnicodeString result;
+  result = source;
+  NAME->transliterate(result);
+  return result;
+}
+#endif
+// public
+
+U_NAMESPACE_BEGIN
+
+// TODO: add boilerplate methods.
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(CanonicalIterator)
+
+/**
+ *@param source string to get results for
+ */
+CanonicalIterator::CanonicalIterator(const UnicodeString &sourceStr, UErrorCode &status) :
+    pieces(NULL),
+    pieces_length(0),
+    pieces_lengths(NULL),
+    current(NULL),
+    current_length(0)
+{
+    if(U_SUCCESS(status)) {
+      setSource(sourceStr, status);
+    }
+}
+
+CanonicalIterator::~CanonicalIterator() {
+  cleanPieces();
+}
+
+void CanonicalIterator::cleanPieces() {
+  int32_t i = 0;
+  if(pieces != NULL) {
+    for(i = 0; i < pieces_length; i++) {
+      if(pieces[i] != NULL) {
+        delete[] pieces[i];
+      }
+    }
+    uprv_free(pieces);
+    pieces = NULL;
+    if(pieces_lengths != NULL) {
+      uprv_free(pieces_lengths);
+    }
+    pieces_lengths = NULL;
+    if(current != NULL) {
+      uprv_free(current);
+    }
+    current = NULL;
+  }
+}
+
+/**
+ *@return gets the source: NOTE: it is the NFD form of source
+ */
+UnicodeString CanonicalIterator::getSource() {
+  return source;
+}
+
+/**
+ * Resets the iterator so that one can start again from the beginning.
+ */
+void CanonicalIterator::reset() {
+    done = FALSE;
+    for (int i = 0; i < current_length; ++i) {
+        current[i] = 0;
+    }
+}
+
+/**
+ *@return the next string that is canonically equivalent. The value null is returned when
+ * the iteration is done.
+ */
+UnicodeString CanonicalIterator::next() {
+    int32_t i = 0;
+
+    if (done) {
+      buffer.setToBogus();
+      return buffer;
+    }
+
+    // delete old contents
+    buffer.remove();
+
+    // construct return value
+
+    for (i = 0; i < pieces_length; ++i) {
+        buffer.append(pieces[i][current[i]]);
+    }
+    //String result = buffer.toString(); // not needed
+
+    // find next value for next time
+
+    for (i = current_length - 1; ; --i) {
+        if (i < 0) {
+            done = TRUE;
+            break;
+        }
+        current[i]++;
+        if (current[i] < pieces_lengths[i]) break; // got sequence
+        current[i] = 0;
+    }
+    return buffer;
+}
+
+/**
+ *@param set the source string to iterate against. This allows the same iterator to be used
+ * while changing the source string, saving object creation.
+ */
+void CanonicalIterator::setSource(const UnicodeString &newSource, UErrorCode &status) {
+    Normalizer::normalize(newSource, UNORM_NFD, 0, source, status);
+    if(U_FAILURE(status)) {
+      return;
+    }
+    done = FALSE;
+
+    cleanPieces();
+
+    // catch degenerate case
+    if (newSource.length() == 0) {
+        pieces_length = 1;
+        pieces = (UnicodeString **)uprv_malloc(sizeof(UnicodeString *));
+        /* test for NULL */
+        if (pieces == NULL) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+            return;
+        }
+        current_length = 1;
+        current = (int32_t*)uprv_malloc(1 * sizeof(int32_t));
+        /* test for NULL */
+        if (current == NULL) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+            uprv_free(pieces);
+            pieces = NULL;
+            return;
+        }
+        current[0] = 0;
+        pieces[0] = new UnicodeString[1];
+        /* test for NULL */
+        if (pieces[0] == 0) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+            uprv_free(pieces);
+            pieces = NULL;
+            uprv_free(current);
+            return;
+        }
+        pieces[0][0] = UnicodeString("");
+        pieces_lengths = (int32_t*)uprv_malloc(1 * sizeof(int32_t));
+        /* test for NULL */
+        if (pieces_lengths == 0) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+            uprv_free(pieces);
+            pieces = NULL;
+            uprv_free(current);
+            return;
+        }
+        pieces_lengths[0] = 1;
+        return;
+    }
+
+
+    UnicodeString *list = new UnicodeString[source.length()];
+    /* test for NULL */
+    if (list == 0) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return;
+    }
+
+    int32_t list_length = 0;
+    UChar32 cp = 0;
+    int32_t start = 0;
+    // i should initialy be the number of code units at the 
+    // start of the string
+    int32_t i = UTF16_CHAR_LENGTH(source.char32At(0));
+    //int32_t i = 1;
+    // find the segments
+    // This code iterates through the source string and 
+    // extracts segments that end up on a codepoint that
+    // doesn't start any decompositions. (Analysis is done
+    // on the NFD form - see above).
+    for (; i < source.length(); i += UTF16_CHAR_LENGTH(cp)) {
+        cp = source.char32At(i);
+        if (unorm_isCanonSafeStart(cp)) {
+            source.extract(start, i-start, list[list_length++]); // add up to i
+            start = i;
+        }
+    }
+    source.extract(start, i-start, list[list_length++]); // add last one
+
+
+    // allocate the arrays, and find the strings that are CE to each segment
+    pieces = (UnicodeString **)uprv_malloc(list_length * sizeof(UnicodeString *));
+    /* test for NULL */
+    if (pieces == NULL) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        delete[] list;
+        return;
+    }
+    pieces_length = list_length;
+    pieces_lengths = (int32_t*)uprv_malloc(list_length * sizeof(int32_t));
+    /* test for NULL */
+    if (pieces_lengths == 0) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        delete[] list;
+        uprv_free(pieces);
+        pieces = NULL;
+        return;
+    }
+
+    current_length = list_length;
+    current = (int32_t*)uprv_malloc(list_length * sizeof(int32_t));
+    /* test for NULL */
+    if (current == 0) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        delete[] list;
+        uprv_free(pieces);
+        pieces = NULL;
+        uprv_free(pieces_lengths);
+        return;
+    }
+    for (i = 0; i < current_length; i++) {
+      current[i] = 0;
+    }
+    // for each segment, get all the combinations that can produce 
+    // it after NFD normalization
+    for (i = 0; i < pieces_length; ++i) {
+        //if (PROGRESS) printf("SEGMENT\n");
+        pieces[i] = getEquivalents(list[i], pieces_lengths[i], status);
+    }
+
+    delete[] list;
+}
+
+/**
+ * Dumb recursive implementation of permutation.
+ * TODO: optimize
+ * @param source the string to find permutations for
+ * @return the results in a set.
+ */
+void CanonicalIterator::permute(UnicodeString &source, UBool skipZeros, Hashtable *result, UErrorCode &status) {
+    if(U_FAILURE(status)) {
+      return;
+    }
+    //if (PROGRESS) printf("Permute: %s\n", UToS(Tr(source)));
+    int32_t i = 0;
+
+    // optimization:
+    // if zero or one character, just return a set with it
+    // we check for length < 2 to keep from counting code points all the time
+    if (source.length() <= 2 && source.countChar32() <= 1) {
+      UnicodeString *toPut = new UnicodeString(source);
+      /* test for NULL */
+      if (toPut == 0) {
+          status = U_MEMORY_ALLOCATION_ERROR;
+          return;
+      }
+      result->put(source, toPut, status);
+      return;
+    }
+
+    // otherwise iterate through the string, and recursively permute all the other characters
+    UChar32 cp;
+    Hashtable *subpermute = new Hashtable(FALSE, status);
+    /* test for NULL */
+    if (subpermute == 0) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return;
+    }
+    if (U_SUCCESS(status)) {
+        subpermute->setValueDeleter(uhash_deleteUnicodeString);
+    }
+
+    for (i = 0; i < source.length(); i += UTF16_CHAR_LENGTH(cp)) {
+        cp = source.char32At(i);
+        const UHashElement *ne = NULL;
+        int32_t el = -1;
+        UnicodeString subPermuteString = source;
+
+        // optimization:
+        // if the character is canonical combining class zero,
+        // don't permute it
+        if (skipZeros && i != 0 && u_getCombiningClass(cp) == 0) {
+            //System.out.println("Skipping " + Utility.hex(UTF16.valueOf(source, i)));
+            continue;
+        }
+
+        subpermute->removeAll();
+
+        // see what the permutations of the characters before and after this one are
+        //Hashtable *subpermute = permute(source.substring(0,i) + source.substring(i + UTF16.getCharCount(cp)));
+        permute(subPermuteString.replace(i, UTF16_CHAR_LENGTH(cp), NULL, 0), skipZeros, subpermute, status);
+        /* Test for buffer overflows */
+        if(U_FAILURE(status)) {
+            delete subpermute;
+            return;
+        }
+        // The upper replace is destructive. The question is do we have to make a copy, or we don't care about the contents 
+        // of source at this point.
+
+        // prefix this character to all of them
+        ne = subpermute->nextElement(el);
+        while (ne != NULL) {
+          UnicodeString *permRes = (UnicodeString *)(ne->value.pointer);
+          UnicodeString *chStr = new UnicodeString(cp);
+          //test for  NULL
+          if (chStr == NULL) {
+              status = U_MEMORY_ALLOCATION_ERROR;
+              delete subpermute;
+              return;
+          }
+            chStr->append(*permRes); //*((UnicodeString *)(ne->value.pointer));
+            //if (PROGRESS) printf("  Piece: %s\n", UToS(*chStr));
+            result->put(*chStr, chStr, status);
+            ne = subpermute->nextElement(el);
+        }
+    }
+    delete subpermute;
+    //return result;
+}
+
+// privates
+
+// we have a segment, in NFD. Find all the strings that are canonically equivalent to it.
+UnicodeString* CanonicalIterator::getEquivalents(const UnicodeString &segment, int32_t &result_len, UErrorCode &status) {
+    //private String[] getEquivalents(String segment)
+
+    Hashtable *result = new Hashtable(FALSE, status);
+    /* test for NULL */
+    if (result == 0) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return 0;
+    }
+    if (U_SUCCESS(status)) {
+        result->setValueDeleter(uhash_deleteUnicodeString);
+    }
+    UChar USeg[256];
+    int32_t segLen = segment.extract(USeg, 256, status);
+    Hashtable *basic = getEquivalents2(USeg, segLen, status);
+    //Hashtable *basic = getEquivalents2(segment, segLen, status);
+
+    // now get all the permutations
+    // add only the ones that are canonically equivalent
+    // TODO: optimize by not permuting any class zero.
+
+    Hashtable *permutations = new Hashtable(FALSE, status);
+    /* test for NULL */
+    if (permutations == 0) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        delete result;
+        delete basic;
+        return 0;
+    }
+    if (U_SUCCESS(status)) {
+        permutations->setValueDeleter(uhash_deleteUnicodeString);
+    }
+
+    const UHashElement *ne = NULL;
+    int32_t el = -1;
+    //Iterator it = basic.iterator();
+    ne = basic->nextElement(el);
+    //while (it.hasNext())
+    while (ne != NULL) {
+        //String item = (String) it.next();
+        UnicodeString item = *((UnicodeString *)(ne->value.pointer));
+
+        permutations->removeAll();
+        permute(item, CANITER_SKIP_ZEROES, permutations, status);
+        const UHashElement *ne2 = NULL;
+        int32_t el2 = -1;
+        //Iterator it2 = permutations.iterator();
+        ne2 = permutations->nextElement(el2);
+        //while (it2.hasNext())
+        while (ne2 != NULL) {
+            //String possible = (String) it2.next();
+            //UnicodeString *possible = new UnicodeString(*((UnicodeString *)(ne2->value.pointer)));
+            UnicodeString possible(*((UnicodeString *)(ne2->value.pointer)));
+            UnicodeString attempt;
+            Normalizer::normalize(possible, UNORM_NFD, 0, attempt, status);
+
+            // TODO: check if operator == is semanticaly the same as attempt.equals(segment)
+            if (attempt==segment) {
+                //if (PROGRESS) printf("Adding Permutation: %s\n", UToS(Tr(*possible)));
+                // TODO: use the hashtable just to catch duplicates - store strings directly (somehow).
+                result->put(possible, new UnicodeString(possible), status); //add(possible);
+            } else {
+                //if (PROGRESS) printf("-Skipping Permutation: %s\n", UToS(Tr(*possible)));
+            }
+
+          ne2 = permutations->nextElement(el2);
+        }
+        ne = basic->nextElement(el);
+    }
+
+    /* Test for buffer overflows */
+    if(U_FAILURE(status)) {
+        delete result;
+        delete permutations;
+        delete basic;
+        return 0;
+    }
+    // convert into a String[] to clean up storage
+    //String[] finalResult = new String[result.size()];
+    UnicodeString *finalResult = NULL;
+    int32_t resultCount;
+    if((resultCount = result->count())) {
+      finalResult = new UnicodeString[resultCount];
+    } else {
+      status = U_ILLEGAL_ARGUMENT_ERROR;
+    }
+    /* test for NULL */
+    if (finalResult == 0) {
+      if(U_SUCCESS(status)) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+      }
+      delete result;
+      delete permutations;
+      delete basic;
+      return 0;
+    }
+    //result.toArray(finalResult);
+    result_len = 0;
+    el = -1;
+    ne = result->nextElement(el);
+    while(ne != NULL) {
+      UnicodeString finResult = *((UnicodeString *)(ne->value.pointer));
+      finalResult[result_len++] = finResult;
+      ne = result->nextElement(el);
+    }
+
+
+    delete permutations;
+    delete basic;
+    delete result;
+    return finalResult;
+}
+
+Hashtable *CanonicalIterator::getEquivalents2(const UChar *segment, int32_t segLen, UErrorCode &status) {
+//Hashtable *CanonicalIterator::getEquivalents2(const UnicodeString &segment, int32_t segLen, UErrorCode &status) {
+
+    Hashtable *result = new Hashtable(FALSE, status);
+    /* test for NULL */
+    if (result == 0) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return 0;
+    }
+    if (U_SUCCESS(status)) {
+        result->setValueDeleter(uhash_deleteUnicodeString);
+    }
+
+    //if (PROGRESS) printf("Adding: %s\n", UToS(Tr(segment)));
+
+    UnicodeString toPut(segment, segLen);
+
+    result->put(toPut, new UnicodeString(toPut), status);
+
+    USerializedSet starts;
+
+    // cycle through all the characters
+    UChar32 cp, end = 0;
+    int32_t i = 0, j;
+    for (i = 0; i < segLen; i += UTF16_CHAR_LENGTH(cp)) {
+        // see if any character is at the start of some decomposition
+        UTF_GET_CHAR(segment, 0, i, segLen, cp);
+        if (!unorm_getCanonStartSet(cp, &starts)) {
+          continue;
+        }
+        // if so, see which decompositions match 
+        for(j = 0, cp = end+1; cp <= end || uset_getSerializedRange(&starts, j++, &cp, &end); ++cp) {
+            //Hashtable *remainder = extract(cp, segment, segLen, i, status);
+            Hashtable *remainder = extract(cp, segment, segLen, i, status);
+            if (remainder == NULL) continue;
+
+            // there were some matches, so add all the possibilities to the set.
+            UnicodeString prefix(segment, i);
+            prefix += cp;
+
+            const UHashElement *ne = NULL;
+            int32_t el = -1;
+            ne = remainder->nextElement(el);
+            while (ne != NULL) {
+                UnicodeString item = *((UnicodeString *)(ne->value.pointer));
+                UnicodeString *toAdd = new UnicodeString(prefix);
+                /* test for NULL */
+                if (toAdd == 0) {
+                    status = U_MEMORY_ALLOCATION_ERROR;
+                    delete result;
+                    delete remainder;
+                    return 0;
+                }
+                *toAdd += item;
+                result->put(*toAdd, toAdd, status);
+
+                //if (PROGRESS) printf("Adding: %s\n", UToS(Tr(*toAdd)));
+
+                ne = remainder->nextElement(el);
+            }
+
+            delete remainder;
+        }
+    }
+
+    /* Test for buffer overflows */
+    if(U_FAILURE(status)) {
+        return 0;
+    }
+    return result;
+}
+
+/**
+ * See if the decomposition of cp2 is at segment starting at segmentPos 
+ * (with canonical rearrangment!)
+ * If so, take the remainder, and return the equivalents 
+ */
+Hashtable *CanonicalIterator::extract(UChar32 comp, const UChar *segment, int32_t segLen, int32_t segmentPos, UErrorCode &status) {
+//Hashtable *CanonicalIterator::extract(UChar32 comp, const UnicodeString &segment, int32_t segLen, int32_t segmentPos, UErrorCode &status) {
+    //if (PROGRESS) printf(" extract: %s, ", UToS(Tr(UnicodeString(comp))));
+    //if (PROGRESS) printf("%s, %i\n", UToS(Tr(segment)), segmentPos);
+
+    const int32_t bufSize = 256;
+    int32_t bufLen = 0;
+    UChar temp[bufSize];
+
+    const int32_t decompSize = 64;
+    int32_t inputLen = 0;
+    UChar decomp[decompSize];
+
+    U16_APPEND_UNSAFE(temp, inputLen, comp);
+    int32_t decompLen = unorm_getDecomposition(comp, FALSE, decomp, decompSize);
+    if(decompLen < 0) {
+        decompLen = -decompLen;
+    }
+
+    UChar *buff = temp+inputLen;
+
+    // See if it matches the start of segment (at segmentPos)
+    UBool ok = FALSE;
+    UChar32 cp;
+    int32_t decompPos = 0;
+    UChar32 decompCp;
+    UTF_NEXT_CHAR(decomp, decompPos, decompLen, decompCp);
+
+    int32_t i;
+    UBool overflow = FALSE;
+
+    i = segmentPos;
+    while(i < segLen) {
+      UTF_NEXT_CHAR(segment, i, segLen, cp);
+
+        if (cp == decompCp) { // if equal, eat another cp from decomp
+
+            //if (PROGRESS) printf("  matches: %s\n", UToS(Tr(UnicodeString(cp))));
+
+            if (decompPos == decompLen) { // done, have all decomp characters!
+                //u_strcat(buff+bufLen, segment+i);
+                uprv_memcpy(buff+bufLen, segment+i, (segLen-i)*sizeof(UChar));
+                bufLen+=segLen-i;
+
+                ok = TRUE;
+                break;
+            }
+            UTF_NEXT_CHAR(decomp, decompPos, decompLen, decompCp);
+        } else {
+            //if (PROGRESS) printf("  buffer: %s\n", UToS(Tr(UnicodeString(cp))));
+
+            // brute force approach
+
+            U16_APPEND(buff, bufLen, bufSize, cp, overflow);
+
+            if(overflow) {
+                /*
+                 * ### TODO handle buffer overflow
+                 * The buffer is large, but an overflow may still happen with
+                 * unusual input (many combining marks?).
+                 * Reallocate buffer and continue.
+                 * markus 20020929
+                 */
+
+                overflow = FALSE;
+            }
+
+            /* TODO: optimize
+            // since we know that the classes are monotonically increasing, after zero
+            // e.g. 0 5 7 9 0 3
+            // we can do an optimization
+            // there are only a few cases that work: zero, less, same, greater
+            // if both classes are the same, we fail
+            // if the decomp class < the segment class, we fail
+
+            segClass = getClass(cp);
+            if (decompClass <= segClass) return null;
+            */
+        }
+    }
+    if (!ok) return NULL; // we failed, characters left over
+
+    //if (PROGRESS) printf("Matches\n");
+
+    if (bufLen == 0) {
+      Hashtable *result = new Hashtable(FALSE, status);
+      /* test for NULL */
+      if (result == 0) {
+          status = U_MEMORY_ALLOCATION_ERROR;
+          return 0;
+      }
+      result->setValueDeleter(uhash_deleteUnicodeString);
+      result->put(UnicodeString(), new UnicodeString(), status);
+      return result; // succeed, but no remainder
+    }
+
+    // brute force approach
+    // check to make sure result is canonically equivalent
+    int32_t tempLen = inputLen + bufLen;
+
+    UChar trial[bufSize];
+    unorm_decompose(trial, bufSize, temp, tempLen, FALSE, 0, &status);
+
+    /* Test for buffer overflows */
+    if(U_FAILURE(status)) {
+        return 0;
+    }
+
+    if(uprv_memcmp(segment+segmentPos, trial, (segLen - segmentPos)*sizeof(UChar)) != 0) {
+      return NULL;
+    }
+
+    return getEquivalents2(buff, bufLen, status);
+}
+
+U_NAMESPACE_END
+
+#endif /* #if !UCONFIG_NO_NORMALIZATION */
diff --git a/source/common/chariter.cpp b/source/common/chariter.cpp
new file mode 100644
index 0000000..5569876
--- /dev/null
+++ b/source/common/chariter.cpp
@@ -0,0 +1,90 @@
+/*
+**********************************************************************
+*   Copyright (C) 1999-2003, International Business Machines
+*   Corporation and others.  All Rights Reserved.
+**********************************************************************
+*/
+
+#include "unicode/chariter.h"
+
+U_NAMESPACE_BEGIN
+
+ForwardCharacterIterator::~ForwardCharacterIterator() {}
+
+
+CharacterIterator::CharacterIterator()
+: textLength(0), pos(0), begin(0), end(0) {
+}
+
+CharacterIterator::CharacterIterator(int32_t length)
+: textLength(length), pos(0), begin(0), end(length) {
+    if(textLength < 0) {
+        textLength = end = 0;
+    }
+}
+
+CharacterIterator::CharacterIterator(int32_t length, int32_t position)
+: textLength(length), pos(position), begin(0), end(length) {
+    if(textLength < 0) {
+        textLength = end = 0;
+    }
+    if(pos < 0) {
+        pos = 0;
+    } else if(pos > end) {
+        pos = end;
+    }
+}
+
+CharacterIterator::CharacterIterator(int32_t length, int32_t textBegin, int32_t textEnd, int32_t position)
+: textLength(length), pos(position), begin(textBegin), end(textEnd) {
+    if(textLength < 0) {
+        textLength = 0;
+    }
+    if(begin < 0) {
+        begin = 0;
+    } else if(begin > textLength) {
+        begin = textLength;
+    }
+    if(end < begin) {
+        end = begin;
+    } else if(end > textLength) {
+        end = textLength;
+    }
+    if(pos < begin) {
+        pos = begin;
+    } else if(pos > end) {
+        pos = end;
+    }
+}
+
+CharacterIterator::CharacterIterator(const CharacterIterator &that) :
+ForwardCharacterIterator(that),
+textLength(that.textLength), pos(that.pos), begin(that.begin), end(that.end)
+{
+}
+
+CharacterIterator &
+CharacterIterator::operator=(const CharacterIterator &that) {
+    ForwardCharacterIterator::operator=(that);
+    textLength = that.textLength;
+    pos = that.pos;
+    begin = that.begin;
+    end = that.end;
+    return *this;
+}
+
+// implementing first[32]PostInc() directly in a subclass should be faster
+// but these implementations make subclassing a little easier
+UChar
+CharacterIterator::firstPostInc(void) {
+    setToStart();
+    return nextPostInc();
+}
+
+UChar32
+CharacterIterator::first32PostInc(void) {
+    setToStart();
+    return next32PostInc();
+}
+
+U_NAMESPACE_END
diff --git a/source/common/charstr.h b/source/common/charstr.h
new file mode 100644
index 0000000..20ea9a7
--- /dev/null
+++ b/source/common/charstr.h
@@ -0,0 +1,63 @@
+/*
+**********************************************************************
+*   Copyright (c) 2001-2003, International Business Machines
+*   Corporation and others.  All Rights Reserved.
+**********************************************************************
+*   Date        Name        Description
+*   11/19/2001  aliu        Creation.
+**********************************************************************
+*/
+
+#include "unicode/utypes.h"
+#include "unicode/uobject.h"
+#include "unicode/unistr.h"
+#include "cmemory.h"
+
+//--------------------------------------------------------------------
+// class CharString
+//
+// This is a tiny wrapper class that is used internally to make a
+// UnicodeString look like a const char*.  It can be allocated on the
+// stack.  It only creates a heap buffer if it needs to.
+//--------------------------------------------------------------------
+
+U_NAMESPACE_BEGIN
+
+class U_COMMON_API CharString : public UMemory {
+public:
+    // Constructor
+    //     @param  str    The unicode string to be converted to char *
+    //     @param  codepage   The char * code page.  ""   for invariant conversion.
+    //                                               NULL for default code page.
+    inline CharString(const UnicodeString& str, const char *codepage = "");
+    inline ~CharString();
+    inline operator const char*() const { return ptr; }
+
+private:
+    char buf[128];
+    char* ptr;
+
+    CharString(const CharString &other); // forbid copying of this class
+    CharString &operator=(const CharString &other); // forbid copying of this class
+};
+
+inline CharString::CharString(const UnicodeString& str, const char *codepage) {
+    int32_t    len;
+    ptr = buf;
+    len = str.extract(0, 0x7FFFFFFF, buf ,sizeof(buf)-1, codepage);
+    buf[sizeof(buf)-1] = 0;  // extract does not add null if it thinks there is no space for it.
+    if (len >= (int32_t)(sizeof(buf)-1)) {
+        ptr = (char *)uprv_malloc(len+1);
+        str.extract(0, 0x7FFFFFFF, ptr, len+1, codepage);
+    }
+}
+
+inline CharString::~CharString() {
+    if (ptr != buf) {
+        uprv_free(ptr);
+    }
+}
+
+U_NAMESPACE_END
+
+//eof
diff --git a/source/common/cmemory.c b/source/common/cmemory.c
new file mode 100644
index 0000000..45902dc
--- /dev/null
+++ b/source/common/cmemory.c
@@ -0,0 +1,123 @@
+/*
+******************************************************************************
+*
+*   Copyright (C) 2002-2003, International Business Machines
+*   Corporation and others.  All Rights Reserved.
+*
+******************************************************************************
+*
+* File cmemory.c      ICU Heap allocation.
+*                     All ICU heap allocation, both for C and C++ new of ICU
+*                     class types, comes through these functions.
+*
+*                     If you have a need to replace ICU allocation, this is the
+*                     place to do it.
+*
+*                     Note that uprv_malloc(0) returns a non-NULL pointer, and
+*                     that a subsequent free of that pointer value is a NOP.
+*
+******************************************************************************
+*/
+#include "cmemory.h"
+#include "unicode/uclean.h"
+
+/* uprv_malloc(0) returns a pointer to this read-only data. */                
+static const int32_t zeroMem[] = {0, 0, 0, 0, 0, 0};
+
+/* Function Pointers for user-supplied heap functions  */
+static const void     *pContext;
+static UMemAllocFn    *pAlloc;
+static UMemReallocFn  *pRealloc;
+static UMemFreeFn     *pFree;
+
+/* Flag indicating whether any heap allocations have happened.
+ *   Used to prevent changing out the heap functions after allocations have been made */
+static UBool   gHeapInUse;
+
+U_CAPI void * U_EXPORT2
+uprv_malloc(size_t s) {
+    if (s > 0) {
+        gHeapInUse = TRUE;
+        if (pAlloc) {
+            return (*pAlloc)(pContext, s);
+        } else {
+            return malloc(s);
+        }
+    } else {
+        return (void *)zeroMem;
+    }
+}
+
+U_CAPI void * U_EXPORT2
+uprv_realloc(void * buffer, size_t size) {
+    if (buffer == zeroMem) {
+        return uprv_malloc(size);
+    } else if (size == 0) {
+        if (pFree) {
+            (*pFree)(pContext, buffer);
+        } else {
+            free(buffer);
+        }
+        return (void *)zeroMem;
+    } else {
+        gHeapInUse = TRUE;
+        if (pRealloc) {
+            return (*pRealloc)(pContext, buffer, size);
+        } else {
+            return realloc(buffer, size);
+        }
+    }
+}
+
+U_CAPI void U_EXPORT2
+uprv_free(void *buffer) {
+    if (buffer != zeroMem) {
+        if (pFree) {
+            (*pFree)(pContext, buffer);
+        } else {
+            free(buffer);
+        }
+    }
+}
+
+U_CAPI void U_EXPORT2
+u_setMemoryFunctions(const void *context, UMemAllocFn *a, UMemReallocFn *r, UMemFreeFn *f,  UErrorCode *status)
+{
+    if (U_FAILURE(*status)) {
+        return;
+    }
+    if (a==NULL || r==NULL || f==NULL) {
+        *status = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
+    }
+    if (gHeapInUse) {
+        *status = U_INVALID_STATE_ERROR;
+        return;
+    }
+    pContext  = context;
+    pAlloc    = a;
+    pRealloc  = r;
+    pFree     = f;
+}
+
+
+U_CFUNC UBool cmemory_cleanup(void) {
+    pContext   = NULL;
+    pAlloc     = NULL;
+    pRealloc   = NULL;
+    pFree      = NULL;
+    gHeapInUse = FALSE;
+    return TRUE;
+}
+
+
+/*
+ *   gHeapInUse
+ *       Return True if ICU has allocated any memory.
+ *       Used by u_SetMutexFunctions() and similar to verify that ICU has not
+ *               been used, that it is in a pristine initial state.
+ */
+U_CFUNC UBool cmemory_inUse() {
+    return gHeapInUse;
+}
+
diff --git a/source/common/cmemory.h b/source/common/cmemory.h
new file mode 100644
index 0000000..ffcfa2d
--- /dev/null
+++ b/source/common/cmemory.h
@@ -0,0 +1,83 @@
+/*
+******************************************************************************
+*
+*   Copyright (C) 1997-2003, International Business Machines
+*   Corporation and others.  All Rights Reserved.
+*
+******************************************************************************
+*
+* File CMEMORY.H
+*
+*  Contains stdlib.h/string.h memory functions
+*
+* @author       Bertrand A. Damiba
+*
+* Modification History:
+*
+*   Date        Name        Description
+*   6/20/98     Bertrand    Created.
+*  05/03/99     stephen     Changed from functions to macros.
+*
+******************************************************************************
+*/
+
+#ifndef CMEMORY_H
+#define CMEMORY_H
+
+#include "unicode/utypes.h"
+#include <stdlib.h>
+#include <string.h>
+
+
+#define uprv_memcpy(dst, src, size) U_STANDARD_CPP_NAMESPACE memcpy(dst, src, size)
+#define uprv_memmove(dst, src, size) U_STANDARD_CPP_NAMESPACE memmove(dst, src, size)
+#define uprv_memset(buffer, mark, size) U_STANDARD_CPP_NAMESPACE memset(buffer, mark, size)
+#define uprv_memcmp(buffer1, buffer2, size) U_STANDARD_CPP_NAMESPACE memcmp(buffer1, buffer2,size)
+
+U_CAPI void * U_EXPORT2
+uprv_malloc(size_t s);
+
+U_CAPI void * U_EXPORT2
+uprv_realloc(void *mem, size_t size);
+
+U_CAPI void U_EXPORT2
+uprv_free(void *mem);
+
+/**
+ * This should align the memory properly on any machine.
+ * This is very useful for the safeClone functions.
+ */
+typedef union {
+    long    t1;
+    double  t2;
+    void   *t3;
+} UAlignedMemory;
+
+/**
+ * Get the amount of bytes that a pointer is off by from
+ * the previous aligned pointer
+ */
+#define U_ALIGNMENT_OFFSET(ptr) (((size_t)ptr) & (sizeof(UAlignedMemory) - 1))
+
+/**
+ * Get the amount of bytes to add to a pointer
+ * in order to get the next aligned address
+ */
+#define U_ALIGNMENT_OFFSET_UP(ptr) (sizeof(UAlignedMemory) - U_ALIGNMENT_OFFSET(ptr))
+
+/**
+  *  Indicate whether the ICU allocation functions have been used.
+  *  This is used to determine whether ICU is in an initial, unused state.
+  */
+U_CFUNC UBool 
+cmemory_inUse(void);
+
+/**
+  *  Heap clean up function, called from u_cleanup()
+  *    Clears any user heap functions from u_setMemoryFunctions()
+  *    Does NOT deallocate any remaining allocated memory.
+  */
+U_CFUNC UBool 
+cmemory_cleanup(void);
+
+#endif
diff --git a/source/common/common.dsp b/source/common/common.dsp
new file mode 100644
index 0000000..444e0b1
--- /dev/null
+++ b/source/common/common.dsp
@@ -0,0 +1,3643 @@
+# Microsoft Developer Studio Project File - Name="common" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=common - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "common.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "common.mak" CFG="common - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "common - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "common - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "common - Win64 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "common - Win64 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "..\..\lib\"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "COMMON_EXPORTS" /FD /c
+# ADD CPP /nologo /G6 /MD /Za /W3 /GX /Zi /O2 /Ob2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "COMMON_EXPORTS" /D "U_COMMON_IMPLEMENTATION" /D "UDATA_STATIC_LIB" /FR /FD /GF /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
+# ADD LINK32 icudata.lib kernel32.lib user32.lib advapi32.lib shell32.lib /nologo /base:"0x4a800000" /dll /machine:I386 /out:"..\..\bin\icuuc30.dll" /implib:"..\..\lib\icuuc.lib" /libpath:"..\..\lib"
+# SUBTRACT LINK32 /pdb:none /debug
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\..\lib\"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "COMMON_EXPORTS" /FD /GZ /c
+# ADD CPP /nologo /G6 /MDd /Za /W3 /Gm /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "COMMON_EXPORTS" /D "U_COMMON_IMPLEMENTATION" /D "UDATA_STATIC_LIB" /D "RBBI_DEBUG" /FR /FD /GF /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 icudata.lib kernel32.lib user32.lib advapi32.lib shell32.lib /nologo /base:"0x4a800000" /dll /debug /machine:I386 /out:"..\..\bin\icuuc30d.dll" /implib:"..\..\lib\icuucd.lib" /pdbtype:sept /libpath:"..\..\lib"
+# SUBTRACT LINK32 /pdb:none
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "..\..\lib\"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN64" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "COMMON_EXPORTS" /FD /c
+# ADD CPP /nologo /MD /Za /W3 /GX /Zi /O2 /D "NDEBUG" /D "WIN64" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "COMMON_EXPORTS" /D "U_COMMON_IMPLEMENTATION" /D "UDATA_STATIC_LIB" /D "_IA64_" /D "WIN32" /D "_AFX_NO_DAO_SUPPORT" /FD /GF /QIA64_fmaopt /Zm600 /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win64
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win64
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:IX86 /machine:IA64
+# ADD LINK32 icudata.lib kernel32.lib user32.lib advapi32.lib shell32.lib /nologo /base:"0x4a800000" /dll /machine:IX86 /out:"..\..\bin\icuuc30.dll" /implib:"..\..\lib\icuuc.lib" /libpath:"..\..\lib" /machine:IA64
+# SUBTRACT LINK32 /debug
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\..\lib\"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN64" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "COMMON_EXPORTS" /FD /GZ /c
+# ADD CPP /nologo /MDd /Za /W3 /Gm /GX /Zi /Od /D "_DEBUG" /D "WIN64" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "COMMON_EXPORTS" /D "U_COMMON_IMPLEMENTATION" /D "UDATA_STATIC_LIB" /D "_IA64_" /D "WIN32" /D "_AFX_NO_DAO_SUPPORT" /FR /FD /GF /GZ /QIA64_fmaopt /Zm600 /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win64
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win64
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:IX86 /pdbtype:sept /machine:IA64
+# ADD LINK32 icudata.lib kernel32.lib user32.lib advapi32.lib shell32.lib /nologo /base:"0x4a800000" /dll /incremental:no /debug /machine:IX86 /out:"..\..\bin\icuuc30d.dll" /implib:"..\..\lib\icuucd.lib" /pdbtype:sept /libpath:"..\..\lib" /machine:IA64
+
+!ENDIF 
+
+# Begin Target
+
+# Name "common - Win32 Release"
+# Name "common - Win32 Debug"
+# Name "common - Win64 Release"
+# Name "common - Win64 Debug"
+# Begin Group "bidi"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\ubidi.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\ubidi.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\ubidi.h
+
+"..\..\include\unicode\ubidi.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\ubidi.h
+
+"..\..\include\unicode\ubidi.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\ubidi.h
+
+"..\..\include\unicode\ubidi.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\ubidi.h
+
+"..\..\include\unicode\ubidi.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\ubidiimp.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ubidiln.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ubidiwrt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ushape.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\ushape.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\ushape.h
+
+"..\..\include\unicode\ushape.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\ushape.h
+
+"..\..\include\unicode\ushape.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\ushape.h
+
+"..\..\include\unicode\ushape.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\ushape.h
+
+"..\..\include\unicode\ushape.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# End Group
+# Begin Group "break iteration"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\brkdict.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\brkdict.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\brkiter.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\brkiter.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\brkiter.h
+
+"..\..\include\unicode\brkiter.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\brkiter.h
+
+"..\..\include\unicode\brkiter.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\brkiter.h
+
+"..\..\include\unicode\brkiter.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\brkiter.h
+
+"..\..\include\unicode\brkiter.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\dbbi.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\dbbi.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\dbbi.h
+
+"..\..\include\unicode\dbbi.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\dbbi.h
+
+"..\..\include\unicode\dbbi.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\dbbi.h
+
+"..\..\include\unicode\dbbi.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\dbbi.h
+
+"..\..\include\unicode\dbbi.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\dbbi_tbl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\dbbi_tbl.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbi.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\rbbi.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\rbbi.h
+
+"..\..\include\unicode\rbbi.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\rbbi.h
+
+"..\..\include\unicode\rbbi.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\rbbi.h
+
+"..\..\include\unicode\rbbi.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\rbbi.h
+
+"..\..\include\unicode\rbbi.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbidata.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbidata.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbinode.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbinode.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbirb.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbirb.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbirpt.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbiscan.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbiscan.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbisetb.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbisetb.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbistbl.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbitblb.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\rbbitblb.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ubrk.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\ubrk.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\ubrk.h
+
+"..\..\include\unicode\ubrk.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\ubrk.h
+
+"..\..\include\unicode\ubrk.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\ubrk.h
+
+"..\..\include\unicode\ubrk.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\ubrk.h
+
+"..\..\include\unicode\ubrk.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# End Group
+# Begin Group "collation"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\ucol_swp.c
+# ADD CPP /I "..\i18n"
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucol_swp.h
+# End Source File
+# End Group
+# Begin Group "collections"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\hash.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\strenum.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\strenum.h
+
+"..\..\include\unicode\strenum.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\strenum.h
+
+"..\..\include\unicode\strenum.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\strenum.h
+
+"..\..\include\unicode\strenum.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\strenum.h
+
+"..\..\include\unicode\strenum.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\uarrsort.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\uarrsort.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucmp8.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucmp8.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\uenum.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\uenum.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\uenum.h
+
+"..\..\include\unicode\uenum.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\uenum.h
+
+"..\..\include\unicode\uenum.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\uenum.h
+
+"..\..\include\unicode\uenum.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\uenum.h
+
+"..\..\include\unicode\uenum.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\uenumimp.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\uhash.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\uhash.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\uhash_us.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\ustack.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\ustrenum.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\ustrenum.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\utrie.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\utrie.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\uvector.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\uvector.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\uvectr32.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\uvectr32.h
+# End Source File
+# End Group
+# Begin Group "configuration"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\common.rc
+# End Source File
+# Begin Source File
+
+SOURCE=.\cpputils.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\filestrm.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\filestrm.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\locmap.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\locmap.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\mutex.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\putil.c
+# ADD CPP /Ze
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\putil.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\putil.h
+
+"..\..\include\unicode\putil.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\putil.h
+
+"..\..\include\unicode\putil.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\putil.h
+
+"..\..\include\unicode\putil.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\putil.h
+
+"..\..\include\unicode\putil.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\pwin32.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\pwin32.h
+
+"..\..\include\unicode\pwin32.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\pwin32.h
+
+"..\..\include\unicode\pwin32.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\pwin32.h
+
+"..\..\include\unicode\pwin32.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\pwin32.h
+
+"..\..\include\unicode\pwin32.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\uassert.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\uconfig.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\uconfig.h
+
+"..\..\include\unicode\uconfig.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\uconfig.h
+
+"..\..\include\unicode\uconfig.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\uconfig.h
+
+"..\..\include\unicode\uconfig.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\uconfig.h
+
+"..\..\include\unicode\uconfig.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\udeprctd.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\udeprctd.h
+
+"..\..\include\unicode\udeprctd.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\udraft.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\udraft.h
+
+"..\..\include\unicode\udraft.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\umachine.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\umachine.h
+
+"..\..\include\unicode\umachine.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\umachine.h
+
+"..\..\include\unicode\umachine.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\umachine.h
+
+"..\..\include\unicode\umachine.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\umachine.h
+
+"..\..\include\unicode\umachine.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\umemstrm.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\umemstrm.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\umutex.c
+# ADD CPP /Ze
+# End Source File
+# Begin Source File
+
+SOURCE=.\umutex.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\uobslete.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\uobslete.h
+
+"..\..\include\unicode\uobslete.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\urename.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\urename.h
+
+"..\..\include\unicode\urename.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\urename.h
+
+"..\..\include\unicode\urename.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\urename.h
+
+"..\..\include\unicode\urename.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\urename.h
+
+"..\..\include\unicode\urename.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\utrace.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\utrace.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\utrace.h
+
+"..\..\include\unicode\utrace.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\utrace.h
+
+"..\..\include\unicode\utrace.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\utrace.h
+
+"..\..\include\unicode\utrace.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\utrace.h
+
+"..\..\include\unicode\utrace.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\utracimp.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\utypes.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\utypes.h
+
+"..\..\include\unicode\utypes.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\utypes.h
+
+"..\..\include\unicode\utypes.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\utypes.h
+
+"..\..\include\unicode\utypes.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\utypes.h
+
+"..\..\include\unicode\utypes.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\uversion.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\uversion.h
+
+"..\..\include\unicode\uversion.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\uversion.h
+
+"..\..\include\unicode\uversion.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\uversion.h
+
+"..\..\include\unicode\uversion.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\uversion.h
+
+"..\..\include\unicode\uversion.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# End Group
+# Begin Group "conversion"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\ucnv.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\ucnv.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\ucnv.h
+
+"..\..\include\unicode\ucnv.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\ucnv.h
+
+"..\..\include\unicode\ucnv.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\ucnv.h
+
+"..\..\include\unicode\ucnv.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\ucnv.h
+
+"..\..\include\unicode\ucnv.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv2022.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_bld.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_bld.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_cb.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\ucnv_cb.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\ucnv_cb.h
+
+"..\..\include\unicode\ucnv_cb.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\ucnv_cb.h
+
+"..\..\include\unicode\ucnv_cb.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\ucnv_cb.h
+
+"..\..\include\unicode\ucnv_cb.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\ucnv_cb.h
+
+"..\..\include\unicode\ucnv_cb.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_cnv.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_cnv.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_err.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\ucnv_err.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\ucnv_err.h
+
+"..\..\include\unicode\ucnv_err.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\ucnv_err.h
+
+"..\..\include\unicode\ucnv_err.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\ucnv_err.h
+
+"..\..\include\unicode\ucnv_err.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\ucnv_err.h
+
+"..\..\include\unicode\ucnv_err.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_ext.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_ext.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_imp.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_io.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_io.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_lmb.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_u16.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_u32.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_u7.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnv_u8.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnvbocu.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnvhz.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnvisci.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnvlat1.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnvmbcs.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnvmbcs.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucnvscsu.c
+# End Source File
+# End Group
+# Begin Group "data & memory"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\cmemory.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\cmemory.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\uclean.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\uclean.h
+
+"..\..\include\unicode\uclean.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\uclean.h
+
+"..\..\include\unicode\uclean.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\uclean.h
+
+"..\..\include\unicode\uclean.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\uclean.h
+
+"..\..\include\unicode\uclean.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucln.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucln_cmn.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucln_cmn.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucmndata.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ucmndata.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\udata.c
+# ADD CPP /Za
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\udata.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\udata.h
+
+"..\..\include\unicode\udata.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\udata.h
+
+"..\..\include\unicode\udata.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\udata.h
+
+"..\..\include\unicode\udata.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\udata.h
+
+"..\..\include\unicode\udata.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\udatamem.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\udatamem.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\udataswp.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\udataswp.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\umapfile.c
+# ADD CPP /Ze
+# End Source File
+# Begin Source File
+
+SOURCE=.\umapfile.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\uobject.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\uobject.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\uobject.h
+
+"..\..\include\unicode\uobject.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy $(InputPath) ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\uobject.h
+
+"..\..\include\unicode\uobject.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy $(InputPath) ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\uobject.h
+
+"..\..\include\unicode\uobject.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy $(InputPath) ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\uobject.h
+
+"..\..\include\unicode\uobject.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy $(InputPath) ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# End Group
+# Begin Group "formatting"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\unicode\parseerr.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\parseerr.h
+
+"..\..\include\unicode\parseerr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\parseerr.h
+
+"..\..\include\unicode\parseerr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\parseerr.h
+
+"..\..\include\unicode\parseerr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\parseerr.h
+
+"..\..\include\unicode\parseerr.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\parsepos.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\parsepos.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\parsepos.h
+
+"..\..\include\unicode\parsepos.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\parsepos.h
+
+"..\..\include\unicode\parsepos.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\parsepos.h
+
+"..\..\include\unicode\parsepos.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\parsepos.h
+
+"..\..\include\unicode\parsepos.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\umisc.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\umisc.h
+InputName=umisc
+
+"..\..\include\unicode\$(InputName).h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\umisc.h
+InputName=umisc
+
+"..\..\include\unicode\$(InputName).h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\umisc.h
+InputName=umisc
+
+"..\..\include\unicode\$(InputName).h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\umisc.h
+InputName=umisc
+
+"..\..\include\unicode\$(InputName).h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ENDIF 
+
+# End Source File
+# Begin Source File
+
+SOURCE=.\ustrfmt.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\ustrfmt.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\util.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\util.h
+# End Source File
+# End Group
+# Begin Group "idna"
+
+# PROP Default_Filter "*.c,*.h"
+# Begin Source File
+
+SOURCE=.\punycode.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\punycode.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\uidna.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\unicode\uidna.h
+
+!IF  "$(CFG)" == "common - Win32 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\uidna.h
+
+"..\..\include\unicode\uidna.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win32 Debug"
+
+# Begin Custom Build
+InputPath=.\unicode\uidna.h
+
+"..\..\include\unicode\uidna.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+
+!ELSEIF  "$(CFG)" == "common - Win64 Release"
+
+# Begin Custom Build
+InputPath=.\unicode\uidna.h
+
+"..\..\include\unicode\uidna.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	copy    $(InputPath)    ..\..\include\unicode
+
+# End Custom Build
+