Changes with APR-ICONV 1.0

  *) Add the possiblity of a DESTDIR prefix to Makefile.in to make it
     consistent with the behaviour of apr and apr-util. [Graham Leggett]

Changes with APR-ICONV 0.9.5

Changes with APR-ICONV 0.9.4

  *) Add -v option to iconv program. [Justin Erenkrantz]

  *) Add api_version.h. [Justin Erenkrantz]

  *) A fourth pass at a build system. [Justin Erenkrantz]

  *) A third pass at a build system. [Justin Erenkrantz]

Changes with APR-ICONV 0.9.3

Changes with APR-ICONV 0.9.2

  *) A second pass at a working build system - now builds on linux,
     some namespace protection added.
     [jean-frederic clere <jfrederic.clere@fujitsu-siemens.com>]

  *) A first blush at a working build system.
     [jean-frederic clere <jfrederic.clere@fujitsu-siemens.com>]

  *) First set of changes for APR compatibility (eliminated __inline).
     [jean-frederic clere <jfrederic.clere@fujitsu-siemens.com>]

  *) Source moved from the apr library into it's own repository
     due to size concerns.  Still requires portability overhaul.
