1# Copyright (C) 2016 and later: Unicode, Inc. and others.
2# License & terms of use: http://www.unicode.org/copyright.html
3#******************************************************************************
4#
5#   Copyright (C) 2002-2011, International Business Machines
6#   Corporation and others.  All Rights Reserved.
7#
8#******************************************************************************
9
10TOP=../..
11
12srcdir = .
13top_srcdir = $(TOP)
14top_builddir = $(TOP)
15
16# override if you have an out-of-source build (not yet working.)
17BUILDDIR = $(top_builddir)
18
19ICUDIR=ICUunrenamed
20
21# Extra flags to prevent internal API from being hidden.
22# This is important because ELF (Linux) based platforms that don't hide internal
23# API will allow a duplicate internal name to resolve to an external library.
24# See the gcc manual on the "visibility" attribute for details.
25FLAG_OVERRIDE= LIBCFLAGS= LIBCXXFLAGS= $(EXTRA_MAKE_OPTIONS)
26
27## any local overrides
28-include Makefile.local
29
30#  load definition of .SO, etc (but not if we are doing 'make clean')
31ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
32include $(BUILDDIR)/icudefs.mk
33endif
34
35# For MinGW, do we want the DLL to go in the bin location?
36ifeq ($(MINGW_MOVEDLLSTOBINDIR),YES)
37installdir = bin
38else
39installdir = lib
40endif
41
42COM=$(ICUDIR)/$(installdir)/libicuuc.$(SO)
43I18=$(ICUDIR)/$(installdir)/libicui18n.$(SO)
44LEX=$(ICUDIR)/$(installdir)/libiculx.$(SO)
45DAT=$(ICUDIR)/stubdata/libicudata.$(SO)
46UIO=$(ICUDIR)/$(installdir)/libicuio.$(SO)
47
48LIBS=$(COM) $(I18) $(LEX) $(UIO)
49
50## Targets.
51
52
53all:
54	@cat README
55
56clean:
57	-rm -rf $(ICUDIR) urename.* *~
58
59# We use config.status to mean we have a valid out of source tree.
60
61$(ICUDIR)/config.status:
62	-mv $(ICUDIR) $(ICUDIR)old
63	-(rm -rf $(ICUDIR)old &)
64	mkdir $(ICUDIR)
65	( cd $(ICUDIR) ; CPPFLAGS="-DU_DISABLE_RENAMING=1 -DUCONFIG_ENABLE_PLUGINS" $(GENREN_CONFIGURE_ENV) $(top_srcdir)/../configure --with-data-packaging=archive --enable-tests=no --prefix=`pwd` $(GENREN_CONFIGURE_OPTS) )
66    # cause lib and bin to be created, and any other general sanity
67	$(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR) clean
68	$(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR) all-local
69
70# build the libraries
71$(DAT): $(ICUDIR)/config.status Makefile
72	$(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR)/stubdata  all-local
73
74$(COM): $(DAT) $(ICUDIR)/config.status Makefile
75	$(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR)/common all-local
76
77$(I18): $(DAT) $(COM) $(ICUDIR)/config.status Makefile
78	$(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR)/i18n all-local
79
80$(LEX): $(DAT) $(I18) $(COM) $(ICUDIR)/config.status Makefile
81	$(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR)/layoutex all-local
82
83$(UIO):	$(DAT) $(I18) $(COM) $(ICUDIR)/config.status Makefile
84	$(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR)/io all-local
85
86# the header itself
87urename.h: $(LIBS) genren.pl
88	-cp urename.h urename.h.old
89	perl ./genren.pl $(GENREN_PL_OPTS) $(LIBS)
90
91# This is still here, but less useful with the "new" macro-based rename. Just use 'svn diff'.
92sorts:	urename.sort urename.old.sort
93	@echo "*** Please check urename.h manually before committing it."
94	@echo "Try 'diff --side-by-side urename.old.sort urename.sort'"
95
96urename.sort: urename.h
97	sort urename.h > $@
98
99urename.old.sort: $(top_srcdir)/common/unicode/urename.h
100	sort  $(top_srcdir)/common/unicode/urename.h > $@
101
102install-header: urename.h
103	cp urename.h $(top_srcdir)/common/unicode/
104	@echo "*** Please check urename.h manually before committing it."
105
106