diff --git a/icu4c/source/config/mh-mingw b/icu4c/source/config/mh-mingw index 78df54af07..7dac12fd64 100644 --- a/icu4c/source/config/mh-mingw +++ b/icu4c/source/config/mh-mingw @@ -103,13 +103,29 @@ LIBICU = $(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX) #SH## with usually. Many applications will want to add ${ICULIBS_I18N} as well. #SH#ICULIBS="${ICULIBS_BASE} ${ICULIBS_I18N} ${ICULIBS_COMMON} ${ICULIBS_DATA} " -# 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 -# 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 +# Note: The #M# is used to delete lines for icu-config +MSYS_VERSION ?= $(if $(findstring Msys, $(shell uname -o)),$(word 1, $(subst ., ,$(shell uname -r))),0)#M# +$(info Detected MSYS version: $(MSYS_VERSION)) + +ifeq ($(MSYS_VERSION),$(filter $(MSYS_VERSION),0 1)) + # Older versions of MSYS don't have cygpath by default. #M# + + # Current full path directory. #M# + #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. #M# + #CURR_SRCCODE_FULL_DIR=$(subst /,\\\\,$(shell pwd -W))#M# for MSYS + CURR_SRCCODE_FULL_DIR=$(subst \,/,$(shell cmd /c cd))#M# for Cygwin shell +else + # MSYS2 and up have cygpath by default #M# + + # Current full path directory. #M# + CURR_FULL_DIR?=$(shell cygpath . -a -m)#M# + + # Current full path directory for use in source code in a -D compiler option. #M# + CURR_SRCCODE_FULL_DIR=$(shell cygpath . -a -m)#M# +endif ## Compilation rules %.$(STATIC_O): $(srcdir)/%.c diff --git a/icu4c/source/config/mh-mingw64 b/icu4c/source/config/mh-mingw64 index 7d464e572b..456997a5e9 100644 --- a/icu4c/source/config/mh-mingw64 +++ b/icu4c/source/config/mh-mingw64 @@ -103,13 +103,29 @@ LIBICU = $(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX) #SH## with usually. Many applications will want to add ${ICULIBS_I18N} as well. #SH#ICULIBS="${ICULIBS_BASE} ${ICULIBS_I18N} ${ICULIBS_COMMON} ${ICULIBS_DATA} " -# 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 -# 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 +# Note: The #M# is used to delete lines for icu-config +MSYS_VERSION ?= $(if $(findstring Msys, $(shell uname -o)),$(word 1, $(subst ., ,$(shell uname -r))),0)#M# +$(info Detected MSYS version: $(MSYS_VERSION)) + +ifeq ($(MSYS_VERSION),$(filter $(MSYS_VERSION),0 1)) + # Older versions of MSYS don't have cygpath by default. #M# + + # Current full path directory. #M# + #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. #M# + #CURR_SRCCODE_FULL_DIR=$(subst /,\\\\,$(shell pwd -W))#M# for MSYS + CURR_SRCCODE_FULL_DIR=$(subst \,/,$(shell cmd /c cd))#M# for Cygwin shell +else + # MSYS2 and up have cygpath by default #M# + + # Current full path directory. #M# + CURR_FULL_DIR?=$(shell cygpath . -a -m)#M# + + # Current full path directory for use in source code in a -D compiler option. #M# + CURR_SRCCODE_FULL_DIR=$(shell cygpath . -a -m)#M# +endif ## Compilation rules %.$(STATIC_O): $(srcdir)/%.c