.\" Hey, Emacs! This is -*-nroff-*- you know...
.\"
.\" icu-config.1: manual page for the icu-config utility
.\"
.\" Copyright (C) 2002-2004 IBM, Inc. and others.
.\"
.\" Based on  Yves Arrouye's pkgdata page <yves@arrouye.net>
.\" Modified by Steven R. Loomis <srl@jtcsv.com>.
.\" With help from http://www.igpm.rwth-aachen.de/~albrecht/manpage.html

.TH ICU-CONFIG 1 "17 May 2004" "ICU MANPAGE" "ICU @VERSION@ Manual"
.\".Dd "17 May 2004"
.\".Dt ICU-CONFIG 1
.\".Os 

.SH NAME
.B icu-config
\- output ICU build options 
.SH SYNOPSIS
.B icu-config
[
.BI "\-\-bindir"
]
[
.BI "\-\-cc"
]
[
.BI "\-\-cflags"
]
[
.BI "\-\-cppflags"
]
[
.BI "\-\-cppflags\-searchpath"
]
[
.BI "\-\-cxx"
]
[
.BI "\-\-cxxflags"
]
[
.BI "\-\-detect\-prefix"
]
[
.BI "\-\-exec\-prefix"
]
[
.BI "\-\-exists"
]
[
.BI "\-\-help\fP, \fB\-?\fP,\fB"
.BI "\-\-usage"
]
[
.BI "\-\-icudata"
]
[
.BI "\-\-icudata\-installdir"
]
[
.BI "\-\-icudata\-mode"
]
[
.BI "\-\-icudatadir"
]
[
.BI "\-\-invoke"
]
[
.BI "\-\-invoke=" "prog"
]
[
.BI "\-\-ldflags"
]
[
.BI "\-\-ldflags\-layout"
]
[
.BI "\-\-ldflags\-libsonly"
]
[
.BI "\-\-ldflags\-searchpath"
]
[
.BI "\-\-ldflags\-system"
]
[
.BI "\-\-ldflags\-icuio"
]
[
.BI "\-\-mandir"
]
[
.BI "\-\-prefix"
]
[
.BI "\-\-prefix=" "prefix"
]
[
.BI "\-\-sbindir"
]
[
.BI "\-\-shared\-datadir"
]
[
.BI "\-\-sysconfdir"
]
[
.BI "\-\-unicode\-version"
]
[
.BI "\-\-version"
]
[
.BI "\-\-incfile"
]



.SH DESCRIPTION
.B icu-config
simplifies the task of building and linking against ICU as compared to
manually configuring user makefiles or equivalent.  Because 
.B icu-config
is an executable script, it also solves the problem of locating the ICU
libraries and headers, by allowing the system PATH to locate it. 
.SH EXAMPLES
.B icu-config
can be used without a makefile. The command line below is sufficient for
building a single-file c++ program against ICU. (For example, \fBicu/source/samples/props/props.cpp\fR)
.PP
.RS
`icu-config --cxx --cxxflags --cppflags --ldflags` -o props props.cpp
.RE
.PP
More commonly,
.B icu-config
will be called from within a makefile, and used to set up variables. The
following example also builds the \fIprops\fR example.
.PP
.RS
CC=$(shell icu-config --cc)

CXX=$(shell icu-config --cxx)

CPPFLAGS=$(shell icu-config --cppflags)

CXXFLAGS=$(shell icu-config --cxxflags)

LDFLAGS =$(shell icu-config --ldflags)

all: props

props.o: props.cpp
.RE
.PP
make(1) will automatically use the above variables.
.SH OPTIONS
.TP
.BI "\-\-bindir"
Prints the binary (executable) directory path. Normally equivalent to 'bin'.
ICU user-executable applications and scripts are found here.
.TP
.BI "\-\-cc"
Print the C compiler used.  Equivalent to the $(CC) Makefile variable.
.TP
.BI "\-\-cflags"
Print the C compiler flags. Equivalent to the $(CFLAGS) Makefile variable.
Does NOT include preprocessor directives such as include path or defined symbols. Examples include debugging (\-g) and optimization flags
.TP
.BI "\-\-cppflags"
Print the C preprocessor flags. Equivalent to the $(CPPFLAGS) Makefile variable. Examples are \-I include paths  and \-D define directives.
.TP
.BI "\-\-cppflags\-searchpath"
Print the C preprocessor flags, as above but only \-I search paths.
.TP
.BI "\-\-cxx"
Print the C++ compiler. Equivalent to the $(CXX) Makefile variable.
.TP
.BI "\-\-cxxflags"
Print the C++ compiler flags. Equivalent to the $(CXXFLAGS) Makefile variable.
.TP
.BI "\-\-detect\-prefix"
If ICU has been moved from its installed location, prepending this flag to
other 
.B icu-config
calls will attempt to locate ICU relative to where the
.B icu-config
script has been located. Can be used as a last-chance effort if the ICU
install has been damaged.
.TP
.BI "\-\-exec\-prefix"
Print the prefix used for executable program directories (such as bin, sbin, etc). Normally the same as the prefix.
.TP
.BI "\-\-exists"
Script will return with a successful (0) status if ICU seems to be installed
and located correctly, otherwise an error message and nonzero status will
be displayed.
.TP
.BI "\-\-help\fP, \fB\-?\fP,\fB\-\-usage"
Print a help and usage message.
.TP
.BI "\-\-icudata"
Print the \fIshortname\fP of the ICU data file. This does not include any suffix such as .dat, .dll, .so, .lib, .a, etc nor does it include prefixes such as 'lib'.  It may be in the form \fBlibicudt21b\fP 
.TP
.BI "\-\-icudata\-installdir"
Print the directory where ICU packaged data should 
be installed.   Can use as pkgdata(1)'s --install option.
.TP
.BI "\-\-icudata\-mode"
Print the default ICU pkgdata mode, such as dll or common.  Can use as pkgdata(1)'s --mode option.
.TP
.BI "\-\-icudatadir"
Print the path to packaged archive data.  (should be where $ICU_DATA 
or equivalent default path points.)  Will NOT point to the libdir.
.TP
.BI "\-\-invoke"
If ICU is not installed in a location where the operating system will locate 
its shared libraries, this option will print out commands so as to set the
appropriate environment variables to load ICU's shared libraries. For example,
on many systems a variable named LD_LIBRARY_PATH or equivalent must be set.
.TP
.BI "\-\-invoke=" "prog"
Same as the \fB\-\-invoke\fP option, except includes options for invoking 
a program named \fIprog\fP.  If \fIprog\fP is the name of an ICU tool, 
such as genrb(1), then \fBicu-config\fP will also include the full path
to that tool. 
.TP
.BI "\-\-ldflags"
Print any flags which should be passed to the linker. These may include 
-L for library search paths, and -l for including ICU libraries. By default, 
this option will attempt to link in the "common" (libicuuc) and "i18n" 
(libicui18n) libraries, as well as the data library. If additional libraries
are required, any of the following two flags may be added in conjunction with this one,
for example "\-\-ldflags \-\-ldflags-icuio" if the icuio library is required
in addition to the standard ICU libraries.
Equivalent to the $(LDFLAGS) Makefile variable.
.TP
.BI "\-\-ldflags\-layout"
Prints the link option for the ICU layout library.
.TP
.BI "\-\-ldflags\-icuio"
Prints the link option to add the ICU I/O package
.TP
.BI "\-\-ldflags\-libsonly"
Similar to \fI\-\-ldflags\fP but only includes the \-l options.
.TP
.BI "\-\-ldflags\-searchpath"
Similar to \fI\-\-ldflags\fP but only includes the \-L search path options.
.TP
.BI "\-\-ldflags\-system"
Similar to \fI\-\-ldflags\fP but only includes system libraries (such as pthreads)
.BI "\-\-mandir"
Prints the location of the installed ICU man pages. Normally (man)
.TP
.BI "\-\-prefix"
Prints the prefix (base directory) under which the installed ICU resides. 
.TP
.BI "\-\-prefix=" "prefix"
Sets the ICU prefix to \fIprefix\fP for the remainder of this command line.  
Does test whether the new prefix is valid.
.TP
.BI "\-\-sbindir"
Prints the location of ICU system binaries, normally (sbin)
.TP
.BI "\-\-shared\-datadir"
Prints the location of ICU shared data, normally (share)
.TP
.BI "\-\-sysconfdir"
Prints the location of ICU system configuration data, normally (etc)
.TP
.BI "\-\-unicode\-version"
Prints the Version of the Unicode Standard which the current ICU uses.
.TP
.BI "\-\-version"
Prints the current version of ICU.
.TP
.BI "\-\-incfile"
Prints the 'Makefile.inc' path, suitable for use with pkgdata(1)'s \-O option.
.PP
.SH AUTHORS
Steven Loomis
.SH VERSION
@VERSION@
.SH COPYRIGHT
Copyright (C) 2002-2004 IBM, Inc. and others.

