.\" Hey, Emacs! This is -*-nroff-*- you know...
.\"
.\" genrb.8: manual page for the genrb utility
.\"
.\" Copyright (C) 2000 IBM, Inc. and others.
.\"
.TH GENRB 8 "12 October 2000" "ICU MANPAGE" "ICU @VERSION@ Manual"
.SH NAME
.B genrb
\- compile a resource bundle
.SH SYNOPSIS
.B genrb
[
.BR "\-V\fP, \fB\-\-version"
]
[
.BR "\-h\fP, \fB\-?\fP, \fB\-\-help"
]
[
.BR "\-v\fP, \fB\-\-verbose"
]
[
.BI "\-e\fP, \fB\-\-encoding" " encoding"
]
[
.BI "\-s\fP, \fB\-\-sourcedir" " source"
]
[
.BI "\-d\fP, \fB\-\-destdir" " destination"
]
[
.BI "\-i\fP, \fB\-\-icudatadir" " ICU data directory"
]
.IR bundle " \.\.\."
.SH DESCRIPTION
.B genrb
converts the resource
.I bundle
source files passed on the command line to their binary form.
The resulting files have a
.B .res
extension while resource bundle source files typically have a 
.B .txt
extension.
The
.I bundle
file name should be a local identifier, e.g.
.B ja_JP.txt
for Japanese (Japan) data, or
.B root.txt
for the root bundle.
.PP
These binary files can then be read directly by ICU, or used by
.BR pkgdata (8)
for incorporation into a larger archive or library.
.SH OPTIONS
.TP
.BR \-V\fP, \fB\-\-version
Print the version of
.B genrb
and exit.
.TP
.BR \-h\fP, \fB\-?\fP, \fB\-\-help
Print help about usage and exit.
.TP
.BR \-v\fP, \fB\-\-verbose
Display extra informative messages during execution.
.TP
.BI "\-e\fP, \fB\-\-encoding" " encoding"
Set the encoding used to read input files to
.IR encoding .
The default encoding is the invariant (subset of ASCII or EBCDIC)
codepage for the system. See section
.BR "INVARIANT CHARACTERS" .
.B genrb
does automatically detect UTF-8, UTF-16BE, and UTF-16LE if a byte order mark
(BOM) is present.
.TP
.BI "\-s\fP, \fB\-\-sourcedir" " source"
Set the source directory to
.IR source .
The default source directory is specified by the environment variable
.BR ICU_DATA
or is the location set when ICU was built if 
.B ICU_DATA
is not set.
.TP
.BI "\-d\fP, \fB\-\-destdir" " destination"
Set the destination directory to
.IR destination .
The default destination directory is specified by the environment variable
.BR ICU_DATA
or is the location set when ICU was built if 
.B ICU_DATA
is not set.
.TP
.BI "\-i\fP, \fB\-\-icudatadir" " ICU data directory"
Set the directory used to locate any necessary ICU data files to
.IR icudatadir .
For example, when processing collation overrides, ucadata.dat must be located.
The default ICU data directory is specified by the environment variable
.BR ICU_DATA .
.SH INVARIANT CHARACTERS
The
.B invariant character set
consists of the following set of characters, expressed as a standard POSIX
regular expression:
.BR "[a-z]|[A-Z]|[0-9]|_| |+|-|*|/" .
This is the set which is guaranteed to be available regardless of code page.
.SH ENVIRONMENT
.TP 10
.B ICU_DATA
Specifies the directory containing ICU data. Defaults to
.BR @thedatadir@/icu/@VERSION@/ .
Some tools in ICU depend on the presence of the trailing slash. It is thus
important to make sure that it is present if
.B ICU_DATA
is set.
.SH VERSION
@VERSION@
.SH COPYRIGHT
Copyright (C) 2000-2001 IBM, Inc. and others.
.SH SEE ALSO
.BR pkgdata (8)
