1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
|
.\" Hey, Emacs! This is -*-nroff-*- you know...
.\"
.\" icu-config.1: manual page for the icu-config utility
.\"
.\" Copyright (C) 2016 and later: Unicode, Inc. and others.
.\" License & terms of use: http://www.unicode.org/copyright.html
.\" Copyright (C) 2002-2008 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\-install\-dir"
]
[
.BI "\-\-icudata\-mode"
]
[
.BI "\-\-icudatadir"
]
[
.BI "\-\-invoke"
]
[
.BI "\-\-invoke=" "prog"
]
[
.BI "\-\-ldflags"
]
[
.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 \fBicudt21b\fP
.TP
.BI "\-\-icudata\-install\-dir"
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.
|