]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/tools/genren/Makefile
ICU-66108.tar.gz
[apple/icu.git] / icuSources / tools / genren / Makefile
index a1f5925e10d4fb5df5c6bdb987b1d99547c5a15e..082c74fab17e3f34c658af236ba22bcfce5d563e 100644 (file)
@@ -1,22 +1,47 @@
+# Copyright (C) 2016 and later: Unicode, Inc. and others.
+# License & terms of use: http://www.unicode.org/copyright.html
 #******************************************************************************
 #
 #******************************************************************************
 #
-#   Copyright (C) 2002-2004, International Business Machines
+#   Copyright (C) 2002-2011, International Business Machines
 #   Corporation and others.  All Rights Reserved.
 #
 #******************************************************************************
 
 #   Corporation and others.  All Rights Reserved.
 #
 #******************************************************************************
 
-ICUDIR=ICUunrenamed
 TOP=../..
 TOP=../..
-SO=so
+
+srcdir = .
+top_srcdir = $(TOP)
+top_builddir = $(TOP)
+
+# override if you have an out-of-source build (not yet working.)
+BUILDDIR = $(top_builddir)
+
+ICUDIR=ICUunrenamed
+
+# Extra flags to prevent internal API from being hidden.
+# This is important because ELF (Linux) based platforms that don't hide internal
+# API will allow a duplicate internal name to resolve to an external library.
+# See the gcc manual on the "visibility" attribute for details.
+FLAG_OVERRIDE= LIBCFLAGS= LIBCXXFLAGS= $(EXTRA_MAKE_OPTIONS)
+
+## any local overrides
+-include Makefile.local
+
+#  load definition of .SO, etc (but not if we are doing 'make clean')
+ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
+include $(BUILDDIR)/icudefs.mk
+endif
 
 COM=$(ICUDIR)/lib/libicuuc.$(SO)
 I18=$(ICUDIR)/lib/libicui18n.$(SO)
 
 COM=$(ICUDIR)/lib/libicuuc.$(SO)
 I18=$(ICUDIR)/lib/libicui18n.$(SO)
-LAY=$(ICUDIR)/lib/libicule.$(SO)
 LEX=$(ICUDIR)/lib/libiculx.$(SO)
 DAT=$(ICUDIR)/stubdata/libicudata.$(SO)
 UIO=$(ICUDIR)/lib/libicuio.$(SO)
 
 LEX=$(ICUDIR)/lib/libiculx.$(SO)
 DAT=$(ICUDIR)/stubdata/libicudata.$(SO)
 UIO=$(ICUDIR)/lib/libicuio.$(SO)
 
-LIBS=$(COM) $(I18) $(LAY) $(LEX) $(UIO)
+LIBS=$(COM) $(I18) $(LEX) $(UIO)
+
+## Targets.
+
 
 all:
        @cat README
 
 all:
        @cat README
@@ -30,32 +55,33 @@ $(ICUDIR)/config.status:
        -mv $(ICUDIR) $(ICUDIR)old
        -(rm -rf $(ICUDIR)old &)
        mkdir $(ICUDIR)
        -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=yes --prefix=`pwd` $(GENREN_CONFIGURE_OPTS) )
+       ( 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) )
+    # cause lib and bin to be created, and any other general sanity
+       $(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR) clean
+       $(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR) all-local
 
 # build the libraries
 $(DAT): $(ICUDIR)/config.status Makefile
 
 # build the libraries
 $(DAT): $(ICUDIR)/config.status Makefile
-       gmake -C $(ICUDIR)/stubdata libicudata.$(SO)
+       $(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR)/stubdata  all-local
 
 $(COM): $(DAT) $(ICUDIR)/config.status Makefile
 
 $(COM): $(DAT) $(ICUDIR)/config.status Makefile
-       gmake -C $(ICUDIR)/common libicuuc.$(SO)
+       $(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR)/common all-local
 
 $(I18): $(DAT) $(COM) $(ICUDIR)/config.status Makefile
 
 $(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)
+       $(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR)/i18n all-local
 
 $(LEX): $(DAT) $(I18) $(COM) $(ICUDIR)/config.status Makefile
 
 $(LEX): $(DAT) $(I18) $(COM) $(ICUDIR)/config.status Makefile
-       gmake -C $(ICUDIR)/layoutex libiculx.$(SO)
+       $(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR)/layoutex all-local
 
 $(UIO):        $(DAT) $(I18) $(COM) $(ICUDIR)/config.status Makefile
 
 $(UIO):        $(DAT) $(I18) $(COM) $(ICUDIR)/config.status Makefile
-       gmake -C $(ICUDIR)/extra/ustdio libicuio.$(SO)
+       $(MAKE) $(FLAG_OVERRIDE) -C $(ICUDIR)/io all-local
 
 # the header itself
 urename.h: $(LIBS) genren.pl
        -cp urename.h urename.h.old
 
 # the header itself
 urename.h: $(LIBS) genren.pl
        -cp urename.h urename.h.old
-       perl ./genren.pl $(LIBS)
+       perl ./genren.pl $(GENREN_PL_OPTS) $(LIBS)
 
 
+# This is still here, but less useful with the "new" macro-based rename. Just use 'svn diff'.
 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'"
 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'"
@@ -63,11 +89,10 @@ sorts:      urename.sort urename.old.sort
 urename.sort: urename.h
        sort urename.h > $@
 
 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/
+urename.old.sort: $(top_srcdir)/common/unicode/urename.h
+       sort  $(top_srcdir)/common/unicode/urename.h > $@
 
 
+install-header: urename.h
+       cp urename.h $(top_srcdir)/common/unicode/
+       @echo "*** Please check urename.h manually before committing it."