#******************************************************************************
#
#   Copyright (C) 1999, International Business Machines
#   Corporation and others.  All Rights Reserved.
#
#******************************************************************************
# This Makefile is designed to be included into projects which make use
# of the ICU.


SHELL=@SHELL@
CFLAGS=@CFLAGS@ 
CPPFLAGS=@CPPFLAGS@ -I$(prefix)/include
CXXFLAGS=@CXXFLAGS@ 
FFLAGS=@FFLAGS@
DEFS=@DEFS@ 
LDFLAGS=@LDFLAGS@ -L$(prefix)/lib $(LD_RPATH)$(LD_RPATH_PRE)$(libdir)
LIBS=@LIBS@ 
ICULIBS=$(LIBS) -licu-uc -licu-i18n
exec_prefix=@exec_prefix@
prefix=@prefix@
program_transform_name=@program_transform_name@
bindir=@bindir@
sbindir=@sbindir@
libexecdir=@libexecdir@
datadir=@datadir@
sysconfdir=@sysconfdir@
sharedstatedir=@sharedstatedir@
localstatedir=@localstatedir@
libdir=@libdir@
includedir=@includedir@
oldincludedir=@oldincludedir@
infodir=@infodir@
mandir=@mandir@
PACKAGE=@PACKAGE@
VERSION=@VERSION@
CC=@CC@
CXX=@CXX@

INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@

INSTALL_PROGRAM=@INSTALL_PROGRAM@
INSTALL_SCRIPT=@INSTALL_SCRIPT@
INSTALL_DATA=@INSTALL_DATA@
AUTOCONF=@AUTOCONF@
host=@host@
host_alias=@host_alias@
host_cpu=@host_cpu@
host_vendor=@host_vendor@
host_os=@host_os@
LIB_M=@LIB_M@
CPP=@CPP@
HAVE_INTTYPES_H=@HAVE_INTTYPES_H@
U_IS_BIG_ENDIAN=@U_IS_BIG_ENDIAN@
HAVE_INT8_T=@HAVE_INT8_T@
HAVE_UINT8_T=@HAVE_UINT8_T@
HAVE_INT16_T=@HAVE_INT16_T@
HAVE_UINT16_T=@HAVE_UINT16_T@
HAVE_INT32_T=@HAVE_INT32_T@
HAVE_UINT32_T=@HAVE_UINT32_T@
HAVE_BOOL_T=@HAVE_BOOL_T@
EXTRAS_TRUE=@EXTRAS_TRUE@
EXTRAS_FALSE=@EXTRAS_FALSE@
TESTS_TRUE=@TESTS_TRUE@
TESTS_FALSE=@TESTS_FALSE@
SAMPLES_TRUE=@SAMPLES_TRUE@
SAMPLES_FALSE=@SAMPLES_FALSE@
platform=@platform@


ld_rpath_suf=@ld_rpath_suf@


# begin host fragment
@host_frag@
# end host fragment



