Imported Upstream version 58.1
[platform/upstream/icu.git] / source / tools / genren / Makefile
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
10 TOP=../..
11
12 srcdir = .
13 top_srcdir = $(TOP)
14 top_builddir = $(TOP)
15
16 # override if you have an out-of-source build (not yet working.)
17 BUILDDIR = $(top_builddir)
18
19 ICUDIR=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.
25 FLAG_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')
31 ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
32 include $(BUILDDIR)/icudefs.mk
33 endif
34
35 COM=$(ICUDIR)/lib/libicuuc.$(SO)
36 I18=$(ICUDIR)/lib/libicui18n.$(SO)
37 LEX=$(ICUDIR)/lib/libiculx.$(SO)
38 DAT=$(ICUDIR)/stubdata/libicudata.$(SO)
39 UIO=$(ICUDIR)/lib/libicuio.$(SO)
40
41 LIBS=$(COM) $(I18) $(LEX) $(UIO)
42
43 ## Targets.
44
45
46 all:
47         @cat README
48
49 clean:
50         -rm -rf $(ICUDIR) urename.* *~
51
52 # We use config.status to mean we have a valid out of source tree.
53
54 $(ICUDIR)/config.status:
55         -mv $(ICUDIR) $(ICUDIR)old
56         -(rm -rf $(ICUDIR)old &)
57         mkdir $(ICUDIR)
58         ( 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) )
59     # cause lib and bin to be created, and any other general sanity
60         $(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR) clean
61         $(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR) all-local
62
63 # build the libraries
64 $(DAT): $(ICUDIR)/config.status Makefile
65         $(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR)/stubdata  all-local
66
67 $(COM): $(DAT) $(ICUDIR)/config.status Makefile
68         $(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR)/common all-local
69
70 $(I18): $(DAT) $(COM) $(ICUDIR)/config.status Makefile
71         $(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR)/i18n all-local
72
73 $(LEX): $(DAT) $(I18) $(COM) $(ICUDIR)/config.status Makefile
74         $(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR)/layoutex all-local
75
76 $(UIO): $(DAT) $(I18) $(COM) $(ICUDIR)/config.status Makefile
77         $(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR)/io all-local
78
79 # the header itself
80 urename.h: $(LIBS) genren.pl
81         -cp urename.h urename.h.old
82         perl ./genren.pl $(GENREN_PL_OPTS) $(LIBS)
83
84 # This is still here, but less useful with the "new" macro-based rename. Just use 'svn diff'.
85 sorts:  urename.sort urename.old.sort
86         @echo "*** Please check urename.h manually before committing it."
87         @echo "Try 'diff --side-by-side urename.old.sort urename.sort'"
88
89 urename.sort: urename.h
90         sort urename.h > $@
91
92 urename.old.sort: $(top_srcdir)/common/unicode/urename.h
93         sort  $(top_srcdir)/common/unicode/urename.h > $@
94
95 install-header: urename.h
96         cp urename.h $(top_srcdir)/common/unicode/
97         @echo "*** Please check urename.h manually before committing it."
98