1833f3ccbc8f4dd1ec8abb9121988b99ff34ec4c1Adam Lesinski#******************************************************************************
2833f3ccbc8f4dd1ec8abb9121988b99ff34ec4c1Adam Lesinski#
3833f3ccbc8f4dd1ec8abb9121988b99ff34ec4c1Adam Lesinski#   Copyright (C) 2002-2011, International Business Machines
4833f3ccbc8f4dd1ec8abb9121988b99ff34ec4c1Adam Lesinski#   Corporation and others.  All Rights Reserved.
5833f3ccbc8f4dd1ec8abb9121988b99ff34ec4c1Adam Lesinski#
6833f3ccbc8f4dd1ec8abb9121988b99ff34ec4c1Adam Lesinski#******************************************************************************
7833f3ccbc8f4dd1ec8abb9121988b99ff34ec4c1Adam Lesinski
8833f3ccbc8f4dd1ec8abb9121988b99ff34ec4c1Adam LesinskiTOP=../..
9833f3ccbc8f4dd1ec8abb9121988b99ff34ec4c1Adam Lesinski
10833f3ccbc8f4dd1ec8abb9121988b99ff34ec4c1Adam Lesinskisrcdir = .
11833f3ccbc8f4dd1ec8abb9121988b99ff34ec4c1Adam Lesinskitop_srcdir = $(TOP)
12833f3ccbc8f4dd1ec8abb9121988b99ff34ec4c1Adam Lesinskitop_builddir = $(TOP)
13833f3ccbc8f4dd1ec8abb9121988b99ff34ec4c1Adam Lesinski
14833f3ccbc8f4dd1ec8abb9121988b99ff34ec4c1Adam Lesinski# override if you have an out-of-source build (not yet working.)
15833f3ccbc8f4dd1ec8abb9121988b99ff34ec4c1Adam LesinskiBUILDDIR = $(top_builddir)
16833f3ccbc8f4dd1ec8abb9121988b99ff34ec4c1Adam Lesinski
17833f3ccbc8f4dd1ec8abb9121988b99ff34ec4c1Adam LesinskiICUDIR=ICUunrenamed
18833f3ccbc8f4dd1ec8abb9121988b99ff34ec4c1Adam Lesinski
19833f3ccbc8f4dd1ec8abb9121988b99ff34ec4c1Adam Lesinski# Extra flags to prevent internal API from being hidden.
20833f3ccbc8f4dd1ec8abb9121988b99ff34ec4c1Adam Lesinski# This is important because ELF (Linux) based platforms that don't hide internal
21833f3ccbc8f4dd1ec8abb9121988b99ff34ec4c1Adam Lesinski# API will allow a duplicate internal name to resolve to an external library.
22833f3ccbc8f4dd1ec8abb9121988b99ff34ec4c1Adam Lesinski# See the gcc manual on the "visibility" attribute for details.
23833f3ccbc8f4dd1ec8abb9121988b99ff34ec4c1Adam LesinskiFLAG_OVERRIDE= LIBCFLAGS= LIBCXXFLAGS= $(EXTRA_MAKE_OPTIONS)
24833f3ccbc8f4dd1ec8abb9121988b99ff34ec4c1Adam Lesinski
25833f3ccbc8f4dd1ec8abb9121988b99ff34ec4c1Adam Lesinski## any local overrides
26-include Makefile.local
27
28#  load definition of .SO, etc (but not if we are doing 'make clean')
29ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
30include $(BUILDDIR)/icudefs.mk
31endif
32
33COM=$(ICUDIR)/lib/libicuuc.$(SO)
34I18=$(ICUDIR)/lib/libicui18n.$(SO)
35LAY=$(ICUDIR)/lib/libicule.$(SO)
36LEX=$(ICUDIR)/lib/libiculx.$(SO)
37DAT=$(ICUDIR)/stubdata/libicudata.$(SO)
38UIO=$(ICUDIR)/lib/libicuio.$(SO)
39
40LIBS=$(COM) $(I18) $(LAY) $(LEX) $(UIO)
41
42## Targets.
43
44
45all:
46	@cat README
47
48clean:
49	-rm -rf $(ICUDIR) urename.* *~
50
51# We use config.status to mean we have a valid out of source tree.
52
53$(ICUDIR)/config.status:
54	-mv $(ICUDIR) $(ICUDIR)old
55	-(rm -rf $(ICUDIR)old &)
56	mkdir $(ICUDIR)
57	( cd $(ICUDIR) ; CPPFLAGS=-DU_DISABLE_RENAMING=1 $(GENREN_CONFIGURE_ENV) $(top_srcdir)/../configure --with-data-packaging=archive --enable-tests=no --prefix=`pwd` $(GENREN_CONFIGURE_OPTS) )
58    # cause lib and bin to be created, and any other general sanity
59	$(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR) clean
60	$(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR) all-local
61
62# build the libraries
63$(DAT): $(ICUDIR)/config.status Makefile
64	$(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR)/stubdata  all-local
65
66$(COM): $(DAT) $(ICUDIR)/config.status Makefile
67	$(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR)/common all-local
68
69$(I18): $(DAT) $(COM) $(ICUDIR)/config.status Makefile
70	$(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR)/i18n all-local
71
72$(LAY): $(DAT) $(I18) $(COM) $(ICUDIR)/config.status Makefile
73	$(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR)/layout all-local
74
75$(LEX): $(DAT) $(I18) $(COM) $(ICUDIR)/config.status Makefile
76	$(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR)/layoutex all-local
77
78$(UIO):	$(DAT) $(I18) $(COM) $(ICUDIR)/config.status Makefile
79	$(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR)/io all-local
80
81# the header itself
82urename.h: $(LIBS) genren.pl
83	-cp urename.h urename.h.old
84	perl ./genren.pl $(GENREN_PL_OPTS) $(LIBS)
85
86# This is still here, but less useful with the "new" macro-based rename. Just use 'svn diff'.
87sorts:	urename.sort urename.old.sort
88	@echo "*** Please check urename.h manually before committing it."
89	@echo "Try 'diff --side-by-side urename.old.sort urename.sort'"
90
91urename.sort: urename.h
92	sort urename.h > $@
93
94urename.old.sort: $(top_srcdir)/common/unicode/urename.h
95	sort  $(top_srcdir)/common/unicode/urename.h > $@
96
97install-header: urename.h
98	cp urename.h $(top_srcdir)/common/unicode/
99	@echo "*** Please check urename.h manually before committing it."
100
101