X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/374ca955a76ecab1204ca8bfa63ff9238d998416..51004dcb01e06fef634b61be77ed73dd61cb6db9:/icuSources/config/mh-mingw diff --git a/icuSources/config/mh-mingw b/icuSources/config/mh-mingw index e8e46a87..eb25c8ab 100644 --- a/icuSources/config/mh-mingw +++ b/icuSources/config/mh-mingw @@ -1,10 +1,13 @@ ## -*-makefile-*- ## Cygwin/MinGW specific setup -## Copyright (c) 2001-2004, International Business Machines Corporation and +## Copyright (c) 2001-2013, International Business Machines Corporation and ## others. All Rights Reserved. # TODO: Finish the rest of this port. This platform port is incomplete. +# This file is similar to mh-mingw64 +# Any changes made here may also need to be made in mh-mingw64 + # We install sbin tools into the same bin directory because # pkgdata needs some of the tools in sbin, and we can't always depend on # icu-config working on Windows. @@ -29,16 +32,20 @@ SHAREDLIBCXXFLAGS = SHAREDLIBCPPFLAGS = -DPIC ## Additional flags when building libraries and with threads -LIBCPPFLAGS = -D_REENTRANT -THREADSCPPFLAGS = -D_REENTRANT +THREADSCFLAGS = -mthreads +THREADSCXXFLAGS = -mthreads +LIBCPPFLAGS = # Commands to link. Link with C++ in case static libraries are used. LINK.c= $(CXX) $(CXXFLAGS) $(LDFLAGS) #LINK.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS) +## Shared library options +LD_SOOPTIONS= -Wl,-Bsymbolic + ## Commands to make a shared library -SHLIB.c= $(CC) $(CFLAGS) $(LDFLAGS) -shared -SHLIB.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared +SHLIB.c= $(CC) $(CFLAGS) $(LDFLAGS) -shared $(LD_SOOPTIONS) -Wl,--enable-auto-import -Wl,--out-implib=$(dir $@)$(notdir $(@:$(SO_TARGET_VERSION_MAJOR).$(SO)=))$(IMPORT_LIB_EXT)#M# +SHLIB.cc= $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(LD_SOOPTIONS) -Wl,--enable-auto-import -Wl,--out-implib=$(dir $@)$(notdir $(@:$(SO_TARGET_VERSION_MAJOR).$(SO)=))$(IMPORT_LIB_EXT)#M# ## Compiler switch to embed a runtime search path LD_RPATH= @@ -51,11 +58,16 @@ LD_SONAME = SO = dll ## Non-shared intermediate object suffix STATIC_O = ao + +ifeq ($(ENABLE_SHARED),YES) SO_TARGET_VERSION_SUFFIX = $(SO_TARGET_VERSION_MAJOR) +else +SO_TARGET_VERSION_SUFFIX = +endif # Static library prefix and file extension -LIBSICU = $(STATIC_PREFIX)$(ICUPREFIX) -A = lib +LIBSICU = $(LIBPREFIX)$(STATIC_PREFIX)$(ICUPREFIX) +A = a ## An import library is needed for z/OS and MSVC IMPORT_LIB_EXT = .lib @@ -70,9 +82,11 @@ LIBICU = $(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX) # The #M# is used to delete lines for icu-config # Current full path directory. -CURR_FULL_DIR=$(shell cygpath -dma .)#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. -CURR_SRCCODE_FULL_DIR=$(subst \,\\\\,$(shell cygpath -da .))#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 ## Compilation rules %.$(STATIC_O): $(srcdir)/%.c @@ -90,12 +104,12 @@ CURR_SRCCODE_FULL_DIR=$(subst \,\\\\,$(shell cygpath -da .))#M# %.d: $(srcdir)/%.c @echo "generating dependency information for $<" @echo -n "$@ " > $@ - @$(SHELL) -ec '$(GEN_DEPS.c) $< >> $@; [ -s $@ ] || rm -f $@' + @$(GEN_DEPS.c) $< >> $@ || (rm -f $@ && FALSE) %.d: $(srcdir)/%.cpp @echo "generating dependency information for $<" @echo -n "$@ " > $@ - @$(SHELL) -ec '$(GEN_DEPS.cc) $< >> $@; [ -s $@ ] || rm -f $@' + @$(GEN_DEPS.cc) $< >> $@ || (rm -f $@ && FALSE) ## Versioned target for a shared library. ## Since symbolic links don't work the same way on Windows, @@ -104,10 +118,14 @@ CURR_SRCCODE_FULL_DIR=$(subst \,\\\\,$(shell cygpath -da .))#M# FINAL_SO_TARGET=$(basename $(SO_TARGET))$(SO_TARGET_VERSION_MAJOR).$(SO) MIDDLE_SO_TARGET=$(FINAL_SO_TARGET) +FINAL_IMPORT_LIB = $(dir $(SO_TARGET))$(notdir $(basename $(SO_TARGET)))$(IMPORT_LIB_EXT)#M# +IMPORT_LIB = $(FINAL_IMPORT_LIB)#M# +MIDDLE_IMPORT_LIB = $(FINAL_IMPORT_LIB)#M# + ## Special pkgdata information that is needed PKGDATA_VERSIONING = -r $(SO_TARGET_VERSION_MAJOR) -ICUPKGDATA_INSTALL_DIR = $(shell cygpath -dma $(DESTDIR)$(ICUPKGDATA_DIR))#M# -ICUPKGDATA_INSTALL_LIBDIR = $(shell cygpath -dma $(DESTDIR)$(libdir))#M# +#ICUPKGDATA_INSTALL_DIR = $(shell cygpath -dma $(DESTDIR)$(ICUPKGDATA_DIR))#M# +#ICUPKGDATA_INSTALL_LIBDIR = $(shell cygpath -dma $(DESTDIR)$(libdir))#M# ## Versioned libraries rules #%$(SO_TARGET_VERSION_MAJOR).$(SO): %$(SO_TARGET_VERSION).$(SO)