Hello,

I'm building Boost 1.53.0 on FreeBSD using GCC. I wish to provide the ICU back-end to Boost.Locale using the static implementation only.

This is the command line I used to configure and build ICU 49.1.2:

runConfigureICU FreeBSD --prefix=/3rdParty/icu4c/release 
                                       --bindir=/3rdParty/icu4c/release/bin64 
                                       --sbindir=/3rdParty/icu4c/release/sbin64 
                                       --libdir=/3rdParty/icu4c/release/lib64
                                       --enable-static=yes 
                                       --enable-shared=no 
                                       --with-library-bits=64
                                       CPPFLAGS=-DU_TIMEZONE=0

The DU_TIMEZONE flag is a workaround for ICU on FreeBSD for that particular version. For
this discussion it may safely be ignored.

The ICU build results as follows:

/3rdParty/icu4c/release
                           |_ bin64
                           |_ include
                           |_ lib64
                           |_ sbin64
                           |_ share

As intended, the shared (*.so) libraries are not built. Only static (*.a) libraries are present in lib64:

libsicudata.a, libsicui18n.a, libsicuio.a, etc...

I then attempt the following command to build Boost:

b2 toolset=gcc 
     link=static 
     variant=release
     threading=multi
     address-model=64
     --build-dir=obj
     --stagedir=bin/64
     --without-python
     -sICU_PATH=/3rdParty/icu4c/release/
     --layout=versioned
     -a
     -j8

With this setup the build reports as follows:

...

Performing configuration checks

    - x86                      : yes
    - has_icu builds           : no
warning: Graph library does not contain MPI-based parallel components.
note: to enable them, add "using mpi ;" to your user-config.jam
    - iconv (libc)             : no
    - iconv (separate)         : no
    - icu                      : no
    - icu (lib64)              : no
- Boost.Locale needs either iconv or ICU library to be built.

...

I do not have this problem when -sICU_PATH points to a directory containing the shared versions of the ICU libraries:

libicudata.so, libicui18n.so, libicuio.so ...

Unfortunately the constraints of the end product restrict me from delivering ICU as a shared library.

Will Boost.Locale accept the ICU back-end as a static library implementation? If so, what have I configured improperly?

Thank you in advance for your assistance.

Brad