diff --git a/icu4c/source/Makefile.in b/icu4c/source/Makefile.in
index d3c69b2d66..a51ce32dc1 100644
--- a/icu4c/source/Makefile.in
+++ b/icu4c/source/Makefile.in
@@ -65,7 +65,7 @@ EXTRA_DATA =
install-recursive clean clean-local clean-recursive distclean \
distclean-local distclean-recursive doc dist dist-local dist-recursive \
check check-local check-recursive clean-recursive-with-twist install-icu \
-doc install-doc tests icu4j-data icu4j-data-install
+doc install-doc tests icu4j-data icu4j-data-install update-windows-makefiles
## Clear suffix list
.SUFFIXES :
@@ -229,7 +229,7 @@ config.status: $(srcdir)/configure $(srcdir)/common/unicode/uvernum.h
@echo
@echo
@echo "*** config.status has become stale ***"
- @echo " 'configure' and/or 'uversion.h' have changed, please"
+ @echo " 'configure' and/or 'uvernum.h' have changed, please"
@echo " do 'runConfigureICU' (or 'configure') again, as per"
@echo " the readme.html."
@echo
@@ -249,3 +249,19 @@ icu4j-data-install icu4j-data: all tests
@echo ICU4J_ROOT=$(ICU4J_ROOT)
@$(MAKE) -C test/testdata $@
@$(MAKE) -C data $@
+
+WINDOWS_UPDATEFILES=$(srcdir)/data/makedata.mak $(shell find $(srcdir) -name '*.vcproj')
+
+WINDOWS_UPDATEFILES_SED=config/windows-update.sed
+
+update-windows-makefiles: config.status
+ @echo Updating Windows Makefiles for ICU $(VERSION)
+ CONFIG_FILES=$(WINDOWS_UPDATEFILES_SED) CONFIG_HEADERS= $(SHELL) ./config.status
+ @for file in $(WINDOWS_UPDATEFILES); do \
+ echo "Updating $$file"; \
+ mv "$${file}" "$${file}.bak" && \
+ sed -f $(WINDOWS_UPDATEFILES_SED) < "$${file}.bak" > "$${file}" && \
+ rm "$${file}.bak"; \
+ done;
+ $(RMV) $(WINDOWS_UPDATEFILES_SED)
+ @echo Please check over the changes carefully before checking them in.
diff --git a/icu4c/source/common/common.vcproj b/icu4c/source/common/common.vcproj
index 6f7c0e76cd..4edf22d09c 100644
--- a/icu4c/source/common/common.vcproj
+++ b/icu4c/source/common/common.vcproj
@@ -75,7 +75,7 @@
/>
&6; }
geticuversion() {
sed -n 's/^[ ]*#[ ]*define[ ]*U_ICU_VERSION[ ]*"\([^"]*\)".*/\1/p' "$@"
}
+getuversion() {
+ sed -n 's/^[ ]*#[ ]*define[ ]*U_UNICODE_VERSION[ ]*"\([^"]*\)".*/\1/p' "$@"
+}
VERSION=`geticuversion $srcdir/common/unicode/uvernum.h`
if test x"$VERSION" = x; then
VERSION=`geticuversion $srcdir/common/unicode/*.h`
if test x"$VERSION" = x; then
- { { $as_echo "$as_me:$LINENO: error: Cannot determine ICU version number from header files" >&5
-$as_echo "$as_me: error: Cannot determine ICU version number from header files" >&2;}
+ { { $as_echo "$as_me:$LINENO: error: Cannot determine ICU version number from uvernum.h header file" >&5
+$as_echo "$as_me: error: Cannot determine ICU version number from uvernum.h header file" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+fi
+
+UNICODE_VERSION=`getuversion $srcdir/common/unicode/uchar.h`
+if test x"$UNICODE_VERSION" = x; then
+ UNICODE_VERSION=`getuversion $srcdir/common/unicode/*.h`
+ if test x"$UNICODE_VERSION" = x; then
+ { { $as_echo "$as_me:$LINENO: error: Cannot determine Unicode version number from uchar.h header file" >&5
+$as_echo "$as_me: error: Cannot determine Unicode version number from uchar.h header file" >&2;}
{ (exit 1); exit 1; }; }
fi
fi
@@ -1964,10 +1977,9 @@ LIB_VERSION_MAJOR=`echo $LIB_VERSION | sed 's/\..*//'`
-{ $as_echo "$as_me:$LINENO: result: release $VERSION, library $LIB_VERSION" >&5
-$as_echo "release $VERSION, library $LIB_VERSION" >&6; }
+{ $as_echo "$as_me:$LINENO: result: release $VERSION, library $LIB_VERSION, unicode version $UNICODE_VERSION" >&5
+$as_echo "release $VERSION, library $LIB_VERSION, unicode version $UNICODE_VERSION" >&6; }
-UNICODE_VERSION="5.2"
# Determine the host system
diff --git a/icu4c/source/configure.in b/icu4c/source/configure.in
index c7ac7b33d8..fe85fdc706 100644
--- a/icu4c/source/configure.in
+++ b/icu4c/source/configure.in
@@ -21,11 +21,22 @@ AC_MSG_CHECKING(for ICU version numbers)
geticuversion() {
[sed -n 's/^[ ]*#[ ]*define[ ]*U_ICU_VERSION[ ]*"\([^"]*\)".*/\1/p' "$@"]
}
+getuversion() {
+ [sed -n 's/^[ ]*#[ ]*define[ ]*U_UNICODE_VERSION[ ]*"\([^"]*\)".*/\1/p' "$@"]
+}
VERSION=`geticuversion $srcdir/common/unicode/uvernum.h`
if test x"$VERSION" = x; then
VERSION=`geticuversion $srcdir/common/unicode/*.h`
if test x"$VERSION" = x; then
- AC_MSG_ERROR([Cannot determine ICU version number from header files])
+ AC_MSG_ERROR([Cannot determine ICU version number from uvernum.h header file])
+ fi
+fi
+
+UNICODE_VERSION=`getuversion $srcdir/common/unicode/uchar.h`
+if test x"$UNICODE_VERSION" = x; then
+ UNICODE_VERSION=`getuversion $srcdir/common/unicode/*.h`
+ if test x"$UNICODE_VERSION" = x; then
+ AC_MSG_ERROR([Cannot determine Unicode version number from uchar.h header file])
fi
fi
# Compute a reasonable library version from the release version. This is
@@ -36,9 +47,8 @@ LIB_VERSION_MAJOR=`echo $LIB_VERSION | sed 's/\..*//'`
AC_SUBST(VERSION)
AC_SUBST(LIB_VERSION)
AC_SUBST(LIB_VERSION_MAJOR)
-AC_MSG_RESULT([release $VERSION, library $LIB_VERSION])
+AC_MSG_RESULT([release $VERSION, library $LIB_VERSION, unicode version $UNICODE_VERSION])
-UNICODE_VERSION="5.2"
AC_SUBST(UNICODE_VERSION)
# Determine the host system
diff --git a/icu4c/source/data/makedata.mak b/icu4c/source/data/makedata.mak
index 3a44bed19f..197f560271 100644
--- a/icu4c/source/data/makedata.mak
+++ b/icu4c/source/data/makedata.mak
@@ -10,7 +10,7 @@
##############################################################################
# Keep the following in sync with the version - see common/unicode/uversion.h
-U_ICUDATA_NAME=icudt43
+U_ICUDATA_NAME=icudt44
##############################################################################
U_ICUDATA_ENDIAN_SUFFIX=l
UNICODE_VERSION=5.2
diff --git a/icu4c/source/i18n/i18n.vcproj b/icu4c/source/i18n/i18n.vcproj
index 97633b2877..a5d42e9e89 100644
--- a/icu4c/source/i18n/i18n.vcproj
+++ b/icu4c/source/i18n/i18n.vcproj
@@ -78,7 +78,7 @@
/>