# Copyright (C) 2010-2013, International Business Machines Corporation. All Rights Reserved.

# CFLAGS contains only anything end users should set
CFLAGS = @UCONFIG_CFLAGS@
# CXXFLAGS contains only anything end users should set
CXXFLAGS = @UCONFIG_CXXFLAGS@
# DEFS only contains those UCONFIG_CPPFLAGS which are not auto-set by platform.h
DEFS = @UCONFIG_CPPFLAGS@
prefix = @prefix@
exec_prefix = @exec_prefix@
#bindir = @bindir@
libdir = @libdir@
includedir = @includedir@
baselibs = @LIBS@
#datarootdir = @datarootdir@
#datadir = @datadir@
#sbindir = @sbindir@
#mandir = @mandir@
#sysconfdir = @sysconfdir@
UNICODE_VERSION=@UNICODE_VERSION@
ICUPREFIX=icu
ICULIBSUFFIX=@ICULIBSUFFIX@
LIBICU=lib${ICUPREFIX}
#SHAREDLIBCFLAGS=-fPIC
pkglibdir=${libdir}/@PACKAGE@${ICULIBSUFFIX}/@VERSION@
#pkgdatadir=${datadir}/@PACKAGE@${ICULIBSUFFIX}/@VERSION@
ICUDATA_NAME = icudt@LIB_VERSION_MAJOR@@ICUDATA_CHAR@
#ICUPKGDATA_DIR=@libdir@
#ICUDATA_DIR=${pkgdatadir}
ICUDESC=International Components for Unicode

Version: @VERSION@
Cflags: -I${includedir}
# end of icu.pc.in
