From 228ceb5c767045623cae0fab4ebeba5cedca65fd Mon Sep 17 00:00:00 2001 From: Michael Ow Date: Thu, 14 Jun 2012 22:29:37 +0000 Subject: [PATCH] ICU-9376 Fix mingw cross compilation errors X-SVN-Rev: 31956 --- icu4c/source/Makefile.in | 10 ++++++++-- icu4c/source/config/mh-cygwin-msvc | 4 ++-- icu4c/source/config/mh-mingw | 4 ++-- icu4c/source/icudefs.mk.in | 5 +++++ 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/icu4c/source/Makefile.in b/icu4c/source/Makefile.in index e0b9b09a735..8cffe6f2621 100644 --- a/icu4c/source/Makefile.in +++ b/icu4c/source/Makefile.in @@ -49,7 +49,7 @@ ALL_PKGCONFIG_FILES=$(ALL_PKGCONFIG_SUFFIX:%=$(top_builddir)/config/icu-%.pc) INSTALLED_BUILT_FILES = $(top_builddir)/config/Makefile.inc $(top_builddir)/config/pkgdata.inc $(top_builddir)/config/icu-config @platform_make_fragment@ $(EXTRA_DATA:%=$(DESTDIR)$(pkglibdir)/%) $(ALL_PKGCONFIG_FILES) ## Files built (autoconfed) but not installed -LOCAL_BUILT_FILES = icudefs.mk config/icucross.mk +LOCAL_BUILT_FILES = icudefs.mk config/icucross.mk config/icucross.inc DOCDIRS = common i18n SUBDIRS = stubdata common i18n $(LAYOUT) tools data $(ICUIO) $(EXTRA) $(SAMPLE) $(TEST) @@ -197,7 +197,7 @@ clean-local: distclean-local: clean-local $(RMV) $(top_builddir)/config/Makefile.inc $(top_builddir)/config/pkgdata.inc $(top_builddir)/config/icu-config $(top_builddir)/config/icu.pc $(ALL_PKGCONFIG_FILES) - $(RMV) config.cache config.log config.status $(top_builddir)/config/icucross.mk autom4te.cache uconfig.h.prepend + $(RMV) config.cache config.log config.status $(top_builddir)/config/icucross.mk $(top_builddir)/config/icucross.inc autom4te.cache uconfig.h.prepend $(RMV) Makefile config/Makefile icudefs.mk $(LIBDIR) $(BINDIR) -$(RMV) dist @@ -229,6 +229,12 @@ config/icucross.mk: $(top_builddir)/icudefs.mk $(top_builddir)/Makefile echo "PKGDATA_INVOKE=$(LDLIBRARYPATH_ENVVAR)=$(LIBRARY_PATH_PREFIX)"'$$(cross_buildroot)/stubdata:$$(cross_buildroot)/tools/ctestfw:$$(TOOLLIBDIR):$$$$'"$(LDLIBRARYPATH_ENVVAR) " ;\ echo ) >> $@ +config/icucross.inc: $(top_builddir)/icudefs.mk $(top_builddir)/Makefile + @echo rebuilding $@ + @(grep '^CURR_FULL_DIR' $(top_builddir)/icudefs.mk ;\ + grep '^CURR_FULL_DIR' @platform_make_fragment@ ;\ + ) > $@ + config/icu.pc: $(srcdir)/config/icu.pc.in cd $(top_builddir) \ diff --git a/icu4c/source/config/mh-cygwin-msvc b/icu4c/source/config/mh-cygwin-msvc index 4a0489bd306..ebf78b31e78 100644 --- a/icu4c/source/config/mh-cygwin-msvc +++ b/icu4c/source/config/mh-cygwin-msvc @@ -1,5 +1,5 @@ ## Cygwin with Microsoft Visual C++ compiler specific setup -## Copyright (c) 2001-2011, International Business Machines Corporation and +## Copyright (c) 2001-2012, International Business Machines Corporation and ## others. All Rights Reserved. # We install sbin tools into the same bin directory because @@ -125,7 +125,7 @@ LDFLAGSICUTOOLUTIL= /base:"0x4ac00000"# Same as layout. Layout and tools probabl # The #M# is used to delete lines for icu-config # Current full path directory. -CURR_FULL_DIR=$(subst \,/,$(shell cygpath -da .))#M# -m isn't used because it doesn't work on Win98 +CURR_FULL_DIR?=$(subst \,/,$(shell cygpath -da .))#M# -m isn't used because it doesn't work on Win98 # Current full path directory for use in source code in a -D compiler option. CURR_SRCCODE_FULL_DIR=$(subst \,\\,$(shell cygpath -da .))#M# diff --git a/icu4c/source/config/mh-mingw b/icu4c/source/config/mh-mingw index 5fac225200a..4538f5bf93e 100644 --- a/icu4c/source/config/mh-mingw +++ b/icu4c/source/config/mh-mingw @@ -79,8 +79,8 @@ LIBICU = $(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX) # The #M# is used to delete lines for icu-config # Current full path directory. -#CURR_FULL_DIR=$(shell pwd -W)#M# for MSYS -CURR_FULL_DIR=$(subst \,/,$(shell cmd /c cd))#M# for Cygwin shell +#CURR_FULL_DIR?=$(shell pwd -W)#M# for MSYS +CURR_FULL_DIR?=$(subst \,/,$(shell cmd /c cd))#M# for Cygwin shell # Current full path directory for use in source code in a -D compiler option. #CURR_SRCCODE_FULL_DIR=$(subst /,\\\\,$(shell pwd -W))#M# for MSYS CURR_SRCCODE_FULL_DIR=$(subst \,/,$(shell cmd /c cd))#M# for Cygwin shell diff --git a/icu4c/source/icudefs.mk.in b/icu4c/source/icudefs.mk.in index e7fb6959bcf..9ebc9e3cc53 100644 --- a/icu4c/source/icudefs.mk.in +++ b/icu4c/source/icudefs.mk.in @@ -260,6 +260,11 @@ INVOKE = $(LDLIBRARYPATH_ENVVAR)=$(LIBRARY_PATH_PREFIX)$(LIBDIR):$(top_builddir) PKGDATA_INVOKE = $(LDLIBRARYPATH_ENVVAR)=$(top_builddir)/stubdata:$(top_builddir)/tools/ctestfw:$(LIBRARY_PATH_PREFIX)$(LIBDIR):$$$(LDLIBRARYPATH_ENVVAR) $(LEAK_CHECKER) INSTALLED_INVOKE = $(LDLIBRARYPATH_ENVVAR)=$(libdir):$$$(LDLIBRARYPATH_ENVVAR) +# Current full path directory for cross compilation +ifneq ($(strip $(cross_buildroot)),) +include $(cross_buildroot)/config/icucross.inc +endif + # Platform-specific setup include @platform_make_fragment@