#******************************************************************************
#
#   Copyright (C) 2002, International Business Machines
#   Corporation and others.  All Rights Reserved.
#
#******************************************************************************

ICUDIR=ICUunrenamed
TOP=../..
SO=so

COM=$(ICUDIR)/common/libicuuc.$(SO)
I18=$(ICUDIR)/i18n/libicui18n.$(SO)
LAY=$(ICUDIR)/layout/libicule.$(SO)
DAT=$(ICUDIR)/stubdata/libicudata.$(SO)

LIBS=$(COM) $(I18) $(LAY)

all:
	@cat README

clean:
	-rm -rf $(ICUDIR) urename.* *~

# We use config.status to mean we have a valid out of source tree.

$(ICUDIR)/config.status:
	-mv $(ICUDIR) $(ICUDIR)old
	-(rm -rf $(ICUDIR)old &)
	mkdir $(ICUDIR)
	( cd $(ICUDIR) ; CPPFLAGS=-DURENAME_H $(TOP)/../configure --with-data-packaging=archive --enable-layout=yes --enable-tests=no --enable-extras=no --prefix=`pwd` $(GENREN_CONFIGURE_OPTS) )

# build the libraries
$(DAT): $(ICUDIR)/config.status Makefile
	gmake -C $(ICUDIR)/stubdata libicudata.so

$(COM): $(DAT) $(ICUDIR)/config.status Makefile
	gmake -C $(ICUDIR)/common libicuuc.so

$(I18): $(DAT) $(COM) $(ICUDIR)/config.status Makefile
	gmake -C $(ICUDIR)/i18n libicui18n.so

$(LAY): $(DAT) $(I18) $(COM) $(ICUDIR)/config.status Makefile
	gmake -C $(ICUDIR)/layout libicule.so

# the header itself
urename.h: $(LIBS) genren.pl
	-cp urename.h urename.h.old
	perl ./genren.pl $(LIBS)

sorts:	urename.sort urename.old.sort
	@echo "*** Please check urename.h manually before committing it."
	@echo "Try 'diff --side-by-side urename.old.sort urename.sort'"

urename.sort: urename.h
	sort urename.h > $@

urename.old.sort: $(TOP)/common/unicode/urename.h
	sort  $(TOP)/common/unicode/urename.h > $@

install-header: urename.h sorts
	cp $(TOP)/common/unicode/urename.h $(TOP)/common/unicode/urename.h.old
	cp urename.h $(TOP)/common/unicode/


