When cross compiling, e.g., Unix => mingw CURR_FULL_DIR must certainly be that for the native (Unix) system and not that for the build (mingw) system. diff -ur icu-4.6.orig/source/Makefile.in icu-4.6/source/Makefile.in --- icu-4.6.orig/source/Makefile.in 2010-10-07 02:23:38.000000000 +0200 +++ icu-4.6/source/Makefile.in 2010-12-07 09:13:47.000000000 +0100 @@ -208,6 +208,8 @@ config/icucross.mk: $(top_builddir)/icudefs.mk $(top_builddir)/Makefile @echo rebuilding $@ @(echo "CROSS_ICU_VERSION=$(VERSION)" ;\ + grep '^CURR_FULL_DIR' $(top_builddir)/icudefs.mk ;\ + grep '^CURR_FULL_DIR' @platform_make_fragment@ ;\ echo "TOOLEXEEXT=$(EXEEXT)" \ ) > $@ @(echo 'TOOLBINDIR=$$(cross_buildroot)/bin' ;\ diff -ur icu-4.6.orig/source/icudefs.mk.in icu-4.6/source/icudefs.mk.in --- icu-4.6.orig/source/icudefs.mk.in 2010-10-05 01:55:47.000000000 +0200 +++ icu-4.6/source/icudefs.mk.in 2010-12-06 20:26:34.000000000 +0100 @@ -220,6 +220,7 @@ TOOLBINDIR=$(BINDIR) TOOLLIBDIR=$(LIBDIR) +# overridden by icucross.mk and maybe by config/mh-*. # Current full path directory. CURR_FULL_DIR=$(shell pwd | sed 's/ /\\ /g') # Current full path directory for use in source code in a -D compiler option.