The genren.pl script is used to generate source/common/unicode/urename.h header file, which is needed for renaming the ICU exported names. 

This script is intended to be used on Linux, although it should work on any platform that has Perl and nm command. Makefile may need to be updated, it's not 100% portable. 

The following instructions are for Linux version.
- urename.h file should be generated after implementation is complete for a release.
- the version number for a release should be set according to the list in source/common/unicode/uversion.h
- In this [genren] directory, run 

    "make install-header"

- urename.h will be updated in icu/source/common/unicode/urename.h  **in your original source directory**
- Eyeball the new file for errors - you can compare it to icu/source/common/unicode/urename.h.old
- Another good way to check the file is a side by side diff.  After the above 'make install-header':

  diff --side-by-side urename.sort urename.old.sort  | more

- Other make targets here

    clean      - cleans out intermediate files
    urename.h  -just builds ./urename.h 
