#******************************************************************************
#
#   Copyright (C) 2000-2004, International Business Machines
#   Corporation and others.  All Rights Reserved.
#
#******************************************************************************
# This Makefile is used to build the ICU's data.
# It is included with the -O option to pkgdata.

PLATFORM=@platform@

top_srcdir=@top_srcdir@
srcdir=@srcdir@
top_builddir=../..

include $(top_builddir)/icudefs.mk

CPPFLAGS+= -I$(top_builddir)/common -I$(top_srcdir)/common
FFLAGS=@FFLAGS@
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@

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

INSTALL_PROGRAM=@INSTALL_PROGRAM@
INSTALL_SCRIPT=@INSTALL_SCRIPT@
INSTALL_DATA=@INSTALL_DATA@
host=@host@
host_alias=@host_alias@
host_cpu=@host_cpu@
host_vendor=@host_vendor@
host_os=@host_os@
LIB_M=@LIB_M@
CPP=@CPP@
U_HAVE_INTTYPES_H=@U_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@
platform=@platform@


ld_rpath_suf=@ld_rpath_suf@

subdir = tools/tmp

##### Add the following to source/config/Makefile.in

GENCCODE=$(BINDIR)/genccode
GENCMN=$(BINDIR)/gencmn

LPATHS=$(top_builddir)/common:$(top_builddir)/i18n:$(top_builddir)/tools/toolutil

TOOL=env $(LDLIBRARYPATH_ENVVAR)=$(LPATHS)

ifeq ($(strip $(PLATFORM)),OS390)
  TOOL=
endif

