summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2012-11-08 10:25:32 +0100
committerBenoit Foucher <benoit@zeroc.com>2012-11-08 10:25:32 +0100
commit7310ad264e17f639fb58dd947ef1c31295e4501c (patch)
tree3cb77562f0c445da903c1ae09ee2b6d80c139a6a
parentUpdated GUI online help to use doc.zeroc.com, in a web browser (diff)
downloadice-7310ad264e17f639fb58dd947ef1c31295e4501c.tar.bz2
ice-7310ad264e17f639fb58dd947ef1c31295e4501c.tar.xz
ice-7310ad264e17f639fb58dd947ef1c31295e4501c.zip
Fixed MinGW port
- The build no longer requires Cygwin - Running the tests no longer requires setting CPP_COMPILER, TestUtil.py che for RI_DEVKIT in the environment to figure out if running with MinGW devki - DynamicLibrary no longer appends the "d" suffix when compiling with debug - COMPSUFFIX is now defined when compiling Ice - Much simplified the build system by removing all the checks for MinGW in makefiles, MinGW settings are now located to Make.rules.MINGW only. - Fixed allTests.py to skip plugin and metrics tests. - Fixed build instructions.
-rw-r--r--config/Make.common.rules26
-rw-r--r--cpp/INSTALL.MINGW63
-rw-r--r--cpp/Makefile2
-rwxr-xr-xcpp/allTests.py6
-rw-r--r--cpp/config/Make.rules169
-rw-r--r--cpp/config/Make.rules.MINGW67
-rw-r--r--cpp/include/Makefile4
-rw-r--r--cpp/src/Ice/ConnectionI.cpp4
-rw-r--r--cpp/src/Ice/DynamicLibrary.cpp2
-rw-r--r--cpp/src/Ice/Makefile36
-rw-r--r--cpp/src/IceSSL/Makefile31
-rw-r--r--cpp/src/IceUtil/Makefile25
-rw-r--r--cpp/src/Makefile7
-rw-r--r--cpp/src/Slice/Makefile25
-rw-r--r--cpp/src/slice2confluence/Makefile2
-rw-r--r--cpp/src/slice2cpp/Makefile17
-rw-r--r--cpp/src/slice2cs/Makefile2
-rw-r--r--cpp/src/slice2freeze/Makefile2
-rw-r--r--cpp/src/slice2freezej/Makefile2
-rw-r--r--cpp/src/slice2html/Makefile2
-rw-r--r--cpp/src/slice2java/Makefile2
-rw-r--r--cpp/src/slice2php/Makefile2
-rw-r--r--cpp/src/slice2py/Makefile2
-rw-r--r--cpp/src/slice2rb/Makefile16
-rw-r--r--cpp/test/Glacier2/ssl/Makefile2
-rw-r--r--cpp/test/Ice/info/Makefile8
-rw-r--r--cpp/test/Ice/plugin/Makefile8
-rw-r--r--cpp/test/IceGrid/session/Makefile2
-rw-r--r--cpp/test/IceSSL/configuration/Makefile8
-rw-r--r--cpp/test/Makefile16
-rw-r--r--rb/INSTALL.WINDOWS34
-rw-r--r--rb/config/Make.rules110
-rw-r--r--rb/config/Make.rules.Darwin3
-rw-r--r--rb/config/Make.rules.MINGW25
-rw-r--r--rb/src/IceRuby/Makefile25
-rwxr-xr-xscripts/TestUtil.py4
36 files changed, 318 insertions, 443 deletions
diff --git a/config/Make.common.rules b/config/Make.common.rules
index 49f8b807624..b6c81422f70 100644
--- a/config/Make.common.rules
+++ b/config/Make.common.rules
@@ -69,6 +69,10 @@ ifeq ($(UNAME),Linux)
endif
endif
+ifneq ($(findstring MINGW,$(UNAME)),)
+ UNAME := MINGW
+endif
+
ifeq ($(LP64),yes)
libsubdir := lib$(lp64suffix)
binsubdir := bin$(lp64binsuffix)
@@ -77,25 +81,6 @@ else
binsubdir := bin
endif
-
-ifeq ($(MinGW), yes)
- ifneq ($(ICE_HOME), )
- tmp = $(shell $(top_srcdir)/../cpp/config/cygpath-unix.sh "$(ICE_HOME)")
- ifeq ($(shell test -d $(tmp) && echo 0), 0)
- ICE_HOME := $(shell $(top_srcdir)/../cpp/config/cygpath-unix.sh "$(ICE_HOME)")
- ICE_HOME_WIN := $(shell $(top_srcdir)/../cpp/config/cygpath-win.sh "$(ICE_HOME)")
- endif
- endif
- ifneq ($(prefix),)
- prefix := $(shell $(top_srcdir)/../cpp/config/cygpath-unix.sh "$(prefix)")
- endif
- ifeq ($(THIRDPARTY_HOME),)
- THIRDPARTY_HOME = $(PROGRAMFILES)\ZeroC\Ice-$(VERSION)-ThirdParty
- endif
- THIRDPARTY_HOME := $(shell $(top_srcdir)/../cpp/config/cygpath-unix.sh "$(THIRDPARTY_HOME)")
- THIRDPARTY_HOME_WIN = $(shell $(top_srcdir)/../cpp/config/cygpath-win.sh $(THIRDPARTY_HOME))
-endif
-
#
# The following variables might also be defined:
#
@@ -293,6 +278,9 @@ ifneq ($(ice_dir), /usr)
export LD_LIBRARY_PATH := $(ice_lib_dir):$(LD_LIBRARY_PATH)
endif
+ ifneq ($(findstring MINGW,$(UNAME)),)
+ set PATH := $(ice_lib_dir);$(PATH)
+ endif
endif
diff --git a/cpp/INSTALL.MINGW b/cpp/INSTALL.MINGW
index e383fa72112..34628974275 100644
--- a/cpp/INSTALL.MINGW
+++ b/cpp/INSTALL.MINGW
@@ -8,10 +8,8 @@ instructions for building and testing the distribution.
http://www.zeroc.com/download.html
-MinGW is only supported for building the Ice extension for Ruby.
-
-MinGW is not supported for general application development in this
-release.
+MinGW is only supported for building the Ice extension for Ruby. It is
+not supported for general application development.
======================================================================
@@ -22,35 +20,26 @@ Requirements
Windows version
---------------
-Ice for MinGW is only supported in Windows XP and Windows 7.
+Ice for MinGW is only supported on Windows XP and Windows 7.
-MinGW Setup
-------------
+MinGW version
+-------------
-The only supported MinGW version is the one that is included in the
-Ruby Development Kit, which you can download here:
+The only supported MinGW version is the one included in the Ruby
+Development Kit 4.5.2, which you can download here:
http://rubyinstaller.org/downloads/
You must download the file DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe,
which is a self-extracting archive.
-To build Ice with MinGW, you also need to install Cygwin. The Cygwin
-installer is available at:
-
- http://www.cygwin.com/install.html
-When installing Cygwin, make sure you select "make" in the package
-list. You do not need to install the MinGW packages from Cygwin.
-
-Ruby Setup
-----------
+Ruby version
+------------
You must install Ruby 1.9.3 using the Windows installer available
-at RubyInstaller:
-
- http://rubyinstaller.org/downloads/
+at http://rubyinstaller.org/downloads
The default installation directory is C:\Ruby193
@@ -91,16 +80,16 @@ Compilation and Testing
Using your favorite Zip tool, unzip the Ice source archive anywhere
you like.
-Open a Cygwin command prompt and change the working directory to the
+Open a Windows command prompt and change the working directory to the
location of the extracted source archive. For example:
-$ cd ~/Ice-@ver@/cpp
+> cd C:\Ice-@ver@\cpp
-Update your PATH to include MinGW from the Ruby Development Kit. For
-example, if you installed the kit into C:\RubyDevKit-4.5.2, you would
-update PATH as follows:
+Run the devkitvars.bat batch file from the Ruby development kit to
+setup your environment. For example, if you installed the development
+kit in C:\RubyDevKit-4.5.2, run the following:
-$ export PATH=/cygdrive/c/RubyDevKit-4.5.2/mingw/bin:$PATH
+> C:\RubyDevKit-4.5.2\devkitvars.bat
Edit config/Make.rules to establish your build configuration. The
comments in the file provide more information. In particular, if
@@ -109,21 +98,23 @@ set THIRDPARTY_HOME to the Ice third-party installation directory.
Now you are ready to build Ice:
-$ make
+> make
-This will build the Ice core, libraries, and tests.
+This will build the C++ and Ruby slice translators, the Ice core,
+IceSSL and C++ tests.
Python is required to run the test suite:
http://www.python.org/download
-After a successful build, you can run the test suite. Open a Windows
-(not Cygwin) command prompt and change the working directory to
-Ice-@ver@:
+After a successful build, you can run the test suite.
+
+First, add Ruby to your environment:
+
+> C:\Ruby193\bin\setrbvars.bat
+
+Next, run the test suite:
-> set PATH=%PATH%;C:\Ruby193\bin
-> cd C:\Ice-@ver@\cpp
-> set CPP_COMPILER=MINGW
> python allTests.py
If everything worked out, you should see lots of "ok" messages. In
@@ -134,6 +125,6 @@ case of a failure, the tests abort with "failed".
Installation
======================================================================
-From a Cygwin command prompt, simply run "make install". This will
+From the command prompt, simply run "make install". This will
install Ice in the directory specified by the "prefix" variable in
config/Make.rules.
diff --git a/cpp/Makefile b/cpp/Makefile
index 67d4542b71c..df6e23ef3fe 100644
--- a/cpp/Makefile
+++ b/cpp/Makefile
@@ -13,7 +13,7 @@ include $(top_srcdir)/config/Make.rules
SUBDIRS = config src include test
-ifneq ($(MinGW), yes)
+ifeq ($(shell uname | grep MINGW),)
SUBDIRS := $(SUBDIRS) demo
endif
diff --git a/cpp/allTests.py b/cpp/allTests.py
index 2228c1915eb..faaae708b40 100755
--- a/cpp/allTests.py
+++ b/cpp/allTests.py
@@ -67,10 +67,10 @@ tests = [
("Ice/defaultServant", ["core"]),
("Ice/defaultValue", ["core"]),
("Ice/invoke", ["core"]),
- ("Ice/plugin", ["core"]),
+ ("Ice/plugin", ["core", "nomingw"]),
("Ice/hash", ["once"]),
("Ice/admin", ["core"]),
- ("Ice/metrics", ["core", "nossl", "noipv6", "nocompress"]),
+ ("Ice/metrics", ["core", "nossl", "noipv6", "nocompress", "nomingw"]),
("Ice/enums", ["once"]),
("IceSSL/configuration", ["once", "novalgrind"]), # valgrind doesn't work well with openssl
("IceBox/configuration", ["core", "noipv6", "novc90", "nomingw", "nomx"]),
@@ -79,7 +79,7 @@ tests = [
("Freeze/complex", ["once", "novc90", "nomingw"]),
("Freeze/evictor", ["core", "novc90", "nomingw"]),
("Freeze/fileLock", ["core", "novc90", "nomingw"]),
- ("IceStorm/single", ["service", "novc90", "noappverifier", "nomingw"]), # This test doesn't work with appverifier is sensitive to timeouts.
+ ("IceStorm/single", ["service", "novc90", "noappverifier", "nomingw"]), # This test doesn't work with appverifier is sensitive to timeouts.
("IceStorm/federation", ["service", "novc90", "nomingw"]),
("IceStorm/federation2", ["service", "novc90", "nomingw"]),
("IceStorm/stress", ["service", "stress", "novc90", "noappverifier", "nomingw"]), # This test is very slow with appverifier.
diff --git a/cpp/config/Make.rules b/cpp/config/Make.rules
index f558971f81a..f34015f431b 100644
--- a/cpp/config/Make.rules
+++ b/cpp/config/Make.rules
@@ -121,13 +121,13 @@ USE_READLINE ?= no
# and IceGrid, set QT_HOME to the Qt installation directory.
#
#
-#QT_HOME = /usr/local/Trolltech/Qt-4.5.3
-#QT_HOME = /Library/Frameworks
+#QT_HOME = /usr/local/Trolltech/Qt-4.5.3
+#QT_HOME = /Library/Frameworks
#
# Generate position independent code unless GENPIC is set to no
#
-#GENPIC ?= yes
+#GENPIC ?= yes
#
# If building with MinGW and if third party libraries are not
@@ -135,7 +135,7 @@ USE_READLINE ?= no
# your environment variables then change the following setting to
# reflect the installation location.
#
-#THIRDPARTY_HOME ?= C:\Program Files\ZeroC\Ice-$(VERSION)-ThirdParty
+#THIRDPARTY_HOME ?= "C:\Program Files\ZeroC\Ice-$(VERSION)-ThirdParty"
#
# Default Mutex protocol: one of PrioNone or PrioInherit.
@@ -157,11 +157,7 @@ endif
#
ice_language = cpp
ifneq ($(shell test "$(USE_BIN_DIST)" != "yes" -a -d $(top_srcdir)/../$(ice_language) && echo 0),0)
- ifeq ($(MinGW), yes)
- slice_translator = slice2cpp.exe
- else
- slice_translator = slice2cpp
- endif
+ slice_translator = slice2cpp
ice_require_cpp = 1
endif
@@ -188,11 +184,7 @@ endif
#
# Platform specific definitions
#
-ifeq ($(MinGW), yes)
- include $(top_srcdir)/config/Make.rules.MinGW
-else
- include $(top_srcdir)/config/Make.rules.$(UNAME)
-endif
+include $(top_srcdir)/config/Make.rules.$(UNAME)
install_includedir := $(prefix)/include
install_docdir := $(prefix)/doc
@@ -210,75 +202,73 @@ ifeq ($(DEFAULT_MUTEX_PROTOCOL), PrioInherit)
ICEUTIL_FLAGS = -DICE_PRIO_INHERIT
endif
-ifeq ($(MinGW), yes)
- OPENSSL_LIBS = -leay32_mingw -lssleay32_mingw
- BZIP2_LIBS = -lbzip2_mingw
- MCPP_LIBS = -lmcpp
- slicedir_win = $(shell $(top_srcdir)/../cpp/config/cygpath-win.sh $(slicedir))
- ICECPPFLAGS = -I"$(slicedir_win)"
+OPENSSL_FLAGS += $(if $(OPENSSL_HOME),-I$(OPENSSL_HOME)/include)
+ifeq ($(OPENSSL_LIBS),)
+ OPENSSL_LIBS = $(if $(OPENSSL_HOME),-L$(OPENSSL_HOME)/$(libsubdir)) -lssl -lcrypto
+endif
+OPENSSL_RPATH_LINK = $(if $(OPENSSL_HOME),$(call rpathlink,$(OPENSSL_HOME)/$(libsubdir)))
+
+BZIP2_FLAGS = $(if $(BZIP2_HOME),-I$(BZIP2_HOME)/include)
+ifeq ($(BZIP2_LIBS),)
+ BZIP2_LIBS = $(if $(BZIP2_HOME),-L$(BZIP2_HOME)/$(libsubdir)) -lbz2
+endif
+BZIP2_RPATH_LINK = $(if $(BZIP2_HOME),$(call rpathlink,$(BZIP2_HOME)/$(libsubdir)))
+
+ifeq ($(ICONV_LIBS),)
+ ICONV_LIBS = $(if $(ICONV_HOME),-L$(ICONV_HOME)/$(libsubdir)) $(ICONV_LIB)
+endif
+
+ifneq ($(DB_HOME),)
+ DB_FLAGS = -I$(DB_HOME)/include
+ ifeq ($(DB_LIBS),)
+ DB_LIBS = -L$(DB_HOME)/$(libsubdir) -ldb_cxx$(CPP11LIBSUFFIX)
+ endif
+ DB_RPATH_LINK = $(call rpathlink,$(DB_HOME)/$(libsubdir))
else
- OPENSSL_FLAGS += $(if $(OPENSSL_HOME),-I$(OPENSSL_HOME)/include)
- OPENSSL_LIBS = $(if $(OPENSSL_HOME),-L$(OPENSSL_HOME)/$(libsubdir)) -lssl -lcrypto
- OPENSSL_RPATH_LINK = $(if $(OPENSSL_HOME),$(call rpathlink,$(OPENSSL_HOME)/$(libsubdir)))
- BZIP2_FLAGS = $(if $(BZIP2_HOME),-I$(BZIP2_HOME)/include)
- BZIP2_LIBS = $(if $(BZIP2_HOME),-L$(BZIP2_HOME)/$(libsubdir)) -lbz2
- BZIP2_RPATH_LINK = $(if $(BZIP2_HOME),$(call rpathlink,$(BZIP2_HOME)/$(libsubdir)))
- ICONV_LIBS = $(if $(ICONV_HOME),-L$(ICONV_HOME)/$(libsubdir)) $(ICONV_LIB)
-
- ifneq ($(DB_HOME),)
- DB_FLAGS = -I$(DB_HOME)/include
- DB_LIBS = -L$(DB_HOME)/$(libsubdir) -ldb_cxx$(CPP11LIBSUFFIX)
- DB_RPATH_LINK = $(call rpathlink,$(DB_HOME)/$(libsubdir))
- else
- ifeq ($(shell if [ -d /usr/include/db53 -a -d /usr/$(libsubdir)/db53 ] ; then echo yes; fi), yes)
- DB_FLAGS = -I/usr/include/db53
- DB_LIBS = -L/usr/$(libsubdir)/db53 -ldb_cxx$(CPP11LIBSUFFIX)
- else
- ifeq ($(shell if [ -d /usr/local/include/db53 -a -d /usr/local/$(libsubdir)/db53 ] ; then echo yes; fi), yes)
- DB_FLAGS = -I/usr/local/include/db53
- DB_LIBS = -L/usr/local/$(libsubdir)/db53 -ldb_cxx$(CPP11LIBSUFFIX)
- else
- DB_LIBS = -ldb_cxx$(CPP11LIBSUFFIX)
- endif
- endif
- endif
- EXPAT_FLAGS = $(if $(EXPAT_HOME),-I$(EXPAT_HOME)/include)
- EXPAT_LIBS = $(if $(EXPAT_HOME),-L$(EXPAT_HOME)/$(libsubdir)) -lexpat
- EXPAT_RPATH_LINK = $(if $(EXPAT_HOME),$(call rpathlink,$(EXPAT_HOME)/$(libsubdir)))
- MCPP_LIBS = $(if $(MCPP_HOME),-L$(MCPP_HOME)/$(libsubdir)) -lmcpp
- MCPP_RPATH_LINK = $(if $(MCPP_HOME),$(call rpathlink,$(MCPP_HOME)/$(libsubdir)))
-
- ifeq ($(PLATFORM_HAS_READLINE),yes)
- ifeq ($(USE_READLINE),yes)
- READLINE_FLAGS = -DHAVE_READLINE $(if $(READLINE_HOME),-I$(READLINE_HOME)/include)
- READLINE_LIBS = $(if $(READLINE_HOME),-L$(READLINE_HOME)/$(libsubdir)) -lreadline -lncurses
- endif
- endif
- ICECPPFLAGS = -I$(slicedir)
+ ifeq ($(shell if [ -d /usr/include/db53 -a -d /usr/$(libsubdir)/db53 ] ; then echo yes; fi), yes)
+ DB_FLAGS = -I/usr/include/db53
+ DB_LIBS = -L/usr/$(libsubdir)/db53 -ldb_cxx$(CPP11LIBSUFFIX)
+ else
+ ifeq ($(shell if [ -d /usr/local/include/db53 -a -d /usr/local/$(libsubdir)/db53 ] ; then echo yes; fi), yes)
+ DB_FLAGS = -I/usr/local/include/db53
+ DB_LIBS = -L/usr/local/$(libsubdir)/db53 -ldb_cxx$(CPP11LIBSUFFIX)
+ else
+ DB_LIBS = -ldb_cxx$(CPP11LIBSUFFIX)
+ endif
+ endif
+endif
+
+EXPAT_FLAGS = $(if $(EXPAT_HOME),-I$(EXPAT_HOME)/include)
+ifeq ($(EXPAT_LIBS),)
+ EXPAT_LIBS = $(if $(EXPAT_HOME),-L$(EXPAT_HOME)/$(libsubdir)) -lexpat
+endif
+EXPAT_RPATH_LINK = $(if $(EXPAT_HOME),$(call rpathlink,$(EXPAT_HOME)/$(libsubdir)))
+
+ifeq ($(MCPP_LIBS),)
+ MCPP_LIBS = $(if $(MCPP_HOME),-L$(MCPP_HOME)/$(libsubdir)) -lmcpp
+endif
+MCPP_RPATH_LINK = $(if $(MCPP_HOME),$(call rpathlink,$(MCPP_HOME)/$(libsubdir)))
+
+
+ifeq ($(PLATFORM_HAS_READLINE),yes)
+ ifeq ($(USE_READLINE),yes)
+ READLINE_FLAGS = -DHAVE_READLINE $(if $(READLINE_HOME),-I$(READLINE_HOME)/include)
+ READLINE_LIBS = $(if $(READLINE_HOME),-L$(READLINE_HOME)/$(libsubdir)) -lreadline -lncurses
+ endif
endif
+ICECPPFLAGS = -I$(slicedir)
SLICE2CPPFLAGS = $(ICECPPFLAGS)
ifeq ($(ice_dir), /usr)
LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS)
else
- ifeq ($(MinGW), yes)
- includedir_win = $(shell $(top_srcdir)/../cpp/config/cygpath-win.sh $(includedir))
- CPPFLAGS += -I"$(includedir_win)"
- ice_dir_win = $(shell $(top_srcdir)/../cpp/config/cygpath-win.sh $(ice_dir))
- ifdef ice_src_dist
- LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir)
- else
- LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L"$(ice_dir_win)\$(binsubdir)"
- endif
+ CPPFLAGS += -I$(includedir)
+ ifdef ice_src_dist
+ LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir)
else
- CPPFLAGS += -I$(includedir)
- ifdef ice_src_dist
- LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir)
- else
- LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(ice_dir)/$(libsubdir)
- endif
+ LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(ice_dir)/$(libsubdir)
endif
endif
@@ -294,35 +284,26 @@ else
BISONFLAGS := -dvt
endif
-ifneq ($(MinGW), yes)
ifeq ($(mkshlib),)
$(error You need to define mkshlib in Make.rules.$(UNAME))
endif
-endif
ifdef ice_src_dist
- ifeq ($(MinGW), yes)
- SLICEPARSERLIB = $(bindir)/$(SLICE_LIBNAME).dll
- SLICE2CPP = $(bindir)/slice2cpp.exe
- else
- SLICEPARSERLIB = $(libdir)/$(call mklibfilename,Slice,$(VERSION))
- SLICE2CPP = $(bindir)/slice2cpp
- SLICE2FREEZE = $(bindir)/slice2freeze
- endif
+ SLICEPARSERLIB = $(libdir)/$(call mklibfilename,Slice,$(VERSION))
+ SLICE2CPP = $(bindir)/slice2cpp
+ SLICE2FREEZE = $(bindir)/slice2freeze
else
- ifeq ($(MinGW), yes)
- SLICEPARSERLIB = $(ice_dir)/$(binsubdir)/$(SLICE_LIBNAME).dll
- SLICE2CPP = $(ice_dir)/$(binsubdir)/slice2cpp.exe
- else
- SLICEPARSERLIB = $(ice_dir)/$(libsubdir)/$(call mklibfilename,Slice,$(VERSION))
- SLICE2CPP = $(ice_dir)/$(binsubdir)/slice2cpp
- SLICE2FREEZE = $(ice_dir)/$(binsubdir)/slice2freeze
- endif
+ SLICEPARSERLIB = $(ice_dir)/$(libsubdir)/$(call mklibfilename,Slice,$(VERSION))
+ SLICE2CPP = $(ice_dir)/$(binsubdir)/slice2cpp
+ SLICE2FREEZE = $(ice_dir)/$(binsubdir)/slice2freeze
+endif
+
+ifeq ($(SLICE_LIBS),)
+ SLICE_LIBS = -lSlice $(BASELIBS)
endif
-ifeq ($(MinGW), yes)
- CPPFLAGS := $(CPPFLAGS) -I"$(THIRDPARTY_HOME_WIN)\include"
- LDFLAGS := $(LDFLAGS) -L"$(THIRDPARTY_HOME_WIN)\lib\mingw" -L"$(THIRDPARTY_HOME_WIN)\bin" -L$(libdir) -L$(bindir)
+ifeq ($(ICESSL_LIBS),)
+ ICESSL_LIBS = -lIceSSL $(LIBS)
endif
EVERYTHING = all depend clean install
diff --git a/cpp/config/Make.rules.MINGW b/cpp/config/Make.rules.MINGW
index 1c6212db61c..29d9c3dba4e 100644
--- a/cpp/config/Make.rules.MINGW
+++ b/cpp/config/Make.rules.MINGW
@@ -12,20 +12,13 @@
#
#
-# build with CygWin MinGW?
-#
-#ifeq ($(CygWin), yes)
-# CXX = i686-pc-mingw32-c++
-#endif
-
-#
# Default compiler is c++ (aka g++).
#
ifeq ($(CXX),)
CXX = c++
endif
-CXXFLAGS = $(CXXARCHFLAGS) -fexceptions -mthreads -Wall -DWIN32_LEAN_AND_MEAN
+CXXFLAGS = $(CXXARCHFLAGS) -fexceptions -mthreads -Wall -DWIN32_LEAN_AND_MEAN
LDFLAGS = -Wl,-no-undefined
ifeq ($(CXX), i686-pc-mingw32-c++)
@@ -33,24 +26,56 @@ ifeq ($(CXX), i686-pc-mingw32-c++)
endif
ifeq ($(OPTIMIZE),yes)
- CXXFLAGS += -O2 -DNDEBUG
+ CXXFLAGS += -O2 -DNDEBUG
else
- CXXFLAGS += -g -D_DEBUG
- LIBSUFFIX = d
+ CXXFLAGS += -g -D_DEBUG
+ LIBSUFFIX = d
endif
-COMPSUFFIX = mingw_
+COMPSUFFIX = mingw_
+
+mklibfilename = $(shell echo $(1) | tr A-Z a-z)$(COMPSUFFIX)$(SOVERSION).dll
+
+ifeq ($(STATICLIBS),yes)
+ mklibtargets = $(3)
+else
+ mklibtargets = $(1)
+endif
#
-# MinGW lib names
+# Shared library linking command. We transform -lxxx parameters into
+# -lxxxmingw_3.5.dll here to avoid having to fix all the Makefiles
+# which need to link with the MinGW libraries.
#
-ICEUTIL_LIBNAME = iceutil$(COMPSUFFIX)$(SOVERSION)$(LIBSUFFIX)
-SLICE_LIBNAME = slice$(COMPSUFFIX)$(SOVERSION)$(LIBSUFFIX)
-ICE_LIBNAME = ice$(COMPSUFFIX)$(SOVERSION)$(LIBSUFFIX)
-ICESSL_LIBNAME = icessl$(COMPSUFFIX)$(SOVERSION)$(LIBSUFFIX)
+mkshlib = $(CXX) -shared $(LDFLAGS) -o $(1) $(3) \
+ $(subst cpp/lib,cpp/bin, \
+ $(subst -lIce,-lice$(COMPSUFFIX)$(SOVERSION), \
+ $(subst -lIceUtil,-liceutil$(COMPSUFFIX)$(SOVERSION), \
+ $(subst -lSlice,-lslice$(COMPSUFFIX)$(SOVERSION), \
+ $(subst -lIceSSL,-licessl$(COMPSUFFIX)$(SOVERSION),$(4))))))
-BASELIBS = -l$(ICEUTIL_LIBNAME)
-LIBS = -l$(ICE_LIBNAME) $(BASELIBS)
-ICEUTIL_OS_LIBS = -lrpcrt4 -ladvapi32
-ICE_OS_LIBS = $(ICEUTIL_OS_LIBS) -lIphlpapi -lws2_32
+mklib = ar cr $(1) $(2)
+libdir = $(top_srcdir)/bin
+libsubdir = bin
+
+installlib = $(INSTALL) $(2)/$(3) $(1); \
+ chmod a+rx $(1)/$(3)
+
+installprogram = $(INSTALL_PROGRAM) $(1) $(2); \
+ chmod a+rx $(2)/$(notdir $(1).exe)
+
+CPPFLAGS := -I$(THIRDPARTY_HOME)/include $(CPPFLAGS)
+LDPLATFORMFLAGS := -L$(THIRDPARTY_HOME)/bin $(LDFLAGS)
+
+OPENSSL_LIBS = -leay32_mingw -lssleay32_mingw -lws2_32
+MCPP_LIBS = -L$(THIRDPARTY_HOME)/lib/mingw -lmcpp
+BZIP2_LIBS = -lbzip2_mingw
+
+BASELIBS = -liceutil$(COMPSUFFIX)$(SOVERSION)
+LIBS = -lice$(COMPSUFFIX)$(SOVERSION) $(BASELIBS)
+ICESSL_LIBS = -licessl$(COMPSUFFIX)$(SOVERSION) $(LIBS)
+SLICE_LIBS = -lslice$(COMPSUFFIX)$(SOVERSION) $(BASELIBS)
+
+ICEUTIL_OS_LIBS = -lrpcrt4 -ladvapi32
+ICE_OS_LIBS = $(ICEUTIL_OS_LIBS) -lIphlpapi -lws2_32
diff --git a/cpp/include/Makefile b/cpp/include/Makefile
index 5de48e060d4..89e1941c5f7 100644
--- a/cpp/include/Makefile
+++ b/cpp/include/Makefile
@@ -15,8 +15,8 @@ SUBDIRS = Ice \
IceSSL \
IceUtil \
Slice
-
-ifneq ($(MinGW), yes)
+
+ifeq ($(findstring MINGW,$(UNAME)),)
SUBDIRS := $(SUBDIRS) \
Freeze \
Glacier2 \
diff --git a/cpp/src/Ice/ConnectionI.cpp b/cpp/src/Ice/ConnectionI.cpp
index 947ede7fbed..b1638274089 100644
--- a/cpp/src/Ice/ConnectionI.cpp
+++ b/cpp/src/Ice/ConnectionI.cpp
@@ -1708,8 +1708,8 @@ Ice::ConnectionI::finish()
// _sendStreams to not call finished on a message which is already done.
//
if(message->requestId > 0 &&
- (message->out && _requests.find(message->requestId) == _requests.end() ||
- message->outAsync && _asyncRequests.find(message->requestId) == _asyncRequests.end()))
+ ((message->out && _requests.find(message->requestId) == _requests.end()) ||
+ (message->outAsync && _asyncRequests.find(message->requestId) == _asyncRequests.end())))
{
if(message->sent(this, true))
{
diff --git a/cpp/src/Ice/DynamicLibrary.cpp b/cpp/src/Ice/DynamicLibrary.cpp
index ab724a9847a..4fa7f1499e2 100644
--- a/cpp/src/Ice/DynamicLibrary.cpp
+++ b/cpp/src/Ice/DynamicLibrary.cpp
@@ -142,7 +142,7 @@ IceInternal::DynamicLibrary::loadEntryPoint(const string& entryPoint, bool useIc
lib += version;
-# ifdef _DEBUG
+# if defined(_DEBUG) && !defined(__MINGW32__)
lib += 'd';
# endif
diff --git a/cpp/src/Ice/Makefile b/cpp/src/Ice/Makefile
index 70edf85aa0b..60aa1f604c9 100644
--- a/cpp/src/Ice/Makefile
+++ b/cpp/src/Ice/Makefile
@@ -9,17 +9,10 @@
top_srcdir = ../..
-include $(top_srcdir)/config/Make.rules.common
-
-ifeq ($(MinGW), yes)
- DLLNAME = $(top_srcdir)/bin/ice$(COMPSUFFIX)$(SOVERSION)$(LIBSUFFIX).dll
- TARGETS = $(DLLNAME) $(LIBNAME)
-else
- LIBFILENAME = $(call mklibfilename,Ice,$(VERSION))
- SONAME = $(call mksoname,Ice,$(SOVERSION))
- LIBNAME = $(call mklibname,Ice)
- TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME))
-endif
+LIBFILENAME = $(call mklibfilename,Ice,$(VERSION))
+SONAME = $(call mksoname,Ice,$(SOVERSION))
+LIBNAME = $(call mklibname,Ice)
+TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME))
OBJS = Acceptor.o \
Application.o \
@@ -123,12 +116,11 @@ OBJS = Acceptor.o \
UdpTransceiver.o \
Version.o
-ifneq ($(MinGW), yes)
+ifeq ($(findstring MINGW,$(shell uname)),)
OBJS := $(OBJS) \
SysLoggerI.o
endif
-
SRCS = $(OBJS:.o=.cpp) \
DLLMain.cpp
@@ -178,18 +170,18 @@ SDIR = $(slicedir)/Ice
include $(top_srcdir)/config/Make.rules
CPPFLAGS := -I.. $(CPPFLAGS) -DICE_API_EXPORTS $(BZIP2_FLAGS)
+ifneq ($(COMPSUFFIX),)
+CPPFLAGS := $(CPPFLAGS) -DCOMPSUFFIX=\"$(COMPSUFFIX)\"
+endif
SLICE2CPPFLAGS := --ice --include-dir Ice --dll-export ICE_API $(SLICE2CPPFLAGS)
-ifeq ($(MinGW), yes)
-CPPFLAGS := $(CPPFLAGS) -DCOMPSUFFIX=\"$(COMPSUFFIX)\"
-LINKWITH := $(ICE_OS_LIBS) -l$(ICEUTIL_LIBNAME) $(BZIP2_LIBS)
-$(DLLNAME): $(OBJS)
- $(CXX) -shared $(LDFLAGS) -o $(DLLNAME) $(OBJS) $(LINKWITH)
+LINKWITH := -lIceUtil $(BZIP2_LIBS) $(ICONV_LIBS) $(ICE_OS_LIBS)
-install:: all
- $(call installprogram,$(DLLNAME),$(install_bindir))
+ifeq ($(STATICLIBS),yes)
+$(libdir)/$(LIBNAME): $(OBJS)
+ rm -f $@
+ $(call mklib,$@,$(OBJS))
else
-LINKWITH := -lIceUtil $(BZIP2_LIBS) $(ICONV_LIBS) $(ICE_OS_LIBS)
$(libdir)/$(LIBFILENAME): $(OBJS)
rm -f $@
$(call mkshlib,$@,$(SONAME),$(OBJS),$(LINKWITH))
@@ -201,9 +193,9 @@ $(libdir)/$(SONAME): $(libdir)/$(LIBFILENAME)
$(libdir)/$(LIBNAME): $(libdir)/$(SONAME)
rm -f $@
ln -s $(SONAME) $@
+endif
install:: all
$(call installlib,$(install_libdir),$(libdir),$(LIBFILENAME),$(SONAME),$(LIBNAME))
-endif
include .depend
diff --git a/cpp/src/IceSSL/Makefile b/cpp/src/IceSSL/Makefile
index ab2d6ca690b..0ceb0bfe450 100644
--- a/cpp/src/IceSSL/Makefile
+++ b/cpp/src/IceSSL/Makefile
@@ -12,15 +12,10 @@ top_srcdir = ../..
include $(top_srcdir)/config/Make.rules.common
-ifeq ($(MinGW), yes)
- DLLNAME = $(top_srcdir)/bin/icessl$(COMPSUFFIX)$(SOVERSION)$(LIBSUFFIX).dll
- TARGETS = $(DLLNAME) $(LIBNAME)
-else
- LIBFILENAME = $(call mklibfilename,IceSSL,$(VERSION))
- SONAME = $(call mksoname,IceSSL,$(SOVERSION))
- LIBNAME = $(call mklibname,IceSSL)
- TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME))
-endif
+LIBFILENAME = $(call mklibfilename,IceSSL,$(VERSION))
+SONAME = $(call mksoname,IceSSL,$(SOVERSION))
+LIBNAME = $(call mklibname,IceSSL)
+TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME))
OBJS = AcceptorI.o \
Certificate.o \
@@ -48,19 +43,13 @@ include $(top_srcdir)/config/Make.rules
CPPFLAGS := -I.. $(CPPFLAGS) -DICE_SSL_API_EXPORTS $(OPENSSL_FLAGS)
SLICE2CPPFLAGS := --ice --include-dir IceSSL --dll-export ICE_SSL_API $(SLICE2CPPFLAGS)
-ifeq ($(MinGW), yes)
-
-LINKWITH := -lice$(COMPSUFFIX)$(SOVERSION)$(LIBSUFFIX) -liceutil$(COMPSUFFIX)$(SOVERSION)$(LIBSUFFIX) $(ICE_OS_LIBS) $(OPENSSL_LIBS)
-
-$(DLLNAME): $(OBJS)
- $(CXX) -shared $(LDFLAGS) -o $(DLLNAME) $(OBJS) $(LINKWITH)
-
-install:: all
- $(call installprogram,$(DLLNAME),$(install_bindir))
-
-else
LINKWITH := $(BZIP2_RPATH_LINK) -lIce -lIceUtil $(OPENSSL_LIBS) $(CXXLIBS)
+ifeq ($(STATICLIBS),yes)
+$(libdir)/$(LIBNAME): $(OBJS)
+ rm -f $@
+ $(call mklib,$@,$(OBJS))
+else
$(libdir)/$(LIBFILENAME): $(OBJS)
rm -f $@
$(call mkshlib,$@,$(SONAME),$(OBJS),$(LINKWITH))
@@ -72,9 +61,9 @@ $(libdir)/$(SONAME): $(libdir)/$(LIBFILENAME)
$(libdir)/$(LIBNAME): $(libdir)/$(SONAME)
rm -f $@
ln -s $(SONAME) $@
+endif
install:: all
$(call installlib,$(install_libdir),$(libdir),$(LIBFILENAME),$(SONAME),$(LIBNAME))
-endif
include .depend
diff --git a/cpp/src/IceUtil/Makefile b/cpp/src/IceUtil/Makefile
index a3e19c0914f..ac76f2362c1 100644
--- a/cpp/src/IceUtil/Makefile
+++ b/cpp/src/IceUtil/Makefile
@@ -9,17 +9,10 @@
top_srcdir = ../..
-include $(top_srcdir)/config/Make.rules.common
-
-ifeq ($(MinGW), yes)
- DLLNAME = $(top_srcdir)/bin/iceutil$(COMPSUFFIX)$(SOVERSION)$(LIBSUFFIX).dll
- TARGETS = $(DLLNAME) $(LIBNAME)
-else
- LIBFILENAME = $(call mklibfilename,IceUtil,$(VERSION))
- SONAME = $(call mksoname,IceUtil,$(SOVERSION))
- LIBNAME = $(call mklibname,IceUtil)
- TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME))
-endif
+LIBFILENAME = $(call mklibfilename,IceUtil,$(VERSION))
+SONAME = $(call mksoname,IceUtil,$(SOVERSION))
+LIBNAME = $(call mklibname,IceUtil)
+TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME))
OBJS = ArgVector.o \
Cond.o \
@@ -48,16 +41,8 @@ SRCS = $(OBJS:.o=.cpp)
include $(top_srcdir)/config/Make.rules
CPPFLAGS := $(CPPFLAGS) $(ICEUTIL_FLAGS) -DICE_UTIL_API_EXPORTS -I..
-
LINKWITH := $(ICEUTIL_OS_LIBS)
-ifeq ($(MinGW), yes)
-$(DLLNAME): $(OBJS)
- $(CXX) -shared $(LDFLAGS) -o $(DLLNAME) $(OBJS) $(LINKWITH)
-
-install:: all
- $(call installprogram,$(DLLNAME),$(install_bindir))
-else
ifeq ($(STATICLIBS),yes)
$(libdir)/$(LIBNAME): $(OBJS)
rm -f $@
@@ -75,9 +60,9 @@ $(libdir)/$(LIBNAME): $(libdir)/$(SONAME)
rm -f $@
ln -s $(SONAME) $@
endif
+
install:: all
$(call installlib,$(install_libdir),$(libdir),$(LIBFILENAME),$(SONAME),$(LIBNAME))
-endif
include .depend
diff --git a/cpp/src/Makefile b/cpp/src/Makefile
index 3c8cca006d0..610d72eeda3 100644
--- a/cpp/src/Makefile
+++ b/cpp/src/Makefile
@@ -11,16 +11,15 @@ top_srcdir = ..
include $(top_srcdir)/config/Make.rules
-
-ifeq ($(MinGW), yes)
- SUBDIRS = IceUtil \
+ifneq ($(findstring MINGW,$(UNAME)),)
+ SUBDIRS = IceUtil \
Slice \
slice2cpp \
slice2rb \
Ice \
IceSSL
else
- SUBDIRS = IceUtil \
+ SUBDIRS = IceUtil \
Slice \
slice2cpp \
slice2cs \
diff --git a/cpp/src/Slice/Makefile b/cpp/src/Slice/Makefile
index f07c97d1340..62121860458 100644
--- a/cpp/src/Slice/Makefile
+++ b/cpp/src/Slice/Makefile
@@ -11,15 +11,10 @@ top_srcdir = ../..
include $(top_srcdir)/config/Make.rules.common
-ifeq ($(MinGW), yes)
- DLLNAME = $(top_srcdir)/bin/slice$(COMPSUFFIX)$(SOVERSION)$(LIBSUFFIX).dll
- TARGETS = $(DLLNAME) $(LIBNAME)
-else
- LIBFILENAME = $(call mklibfilename,Slice,$(VERSION))
- SONAME = $(call mksoname,Slice,$(SOVERSION))
- LIBNAME = $(call mklibname,Slice)
- TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME))
-endif
+LIBFILENAME = $(call mklibfilename,Slice,$(VERSION))
+SONAME = $(call mksoname,Slice,$(SOVERSION))
+LIBNAME = $(call mklibname,Slice)
+TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME))
OBJS = Scanner.o \
../Slice/Grammar.o \
@@ -46,15 +41,7 @@ include $(top_srcdir)/config/Make.rules
CPPFLAGS := -I.. $(CPPFLAGS) -DSLICE_API_EXPORTS
BISONFLAGS := --name-prefix "slice_" $(BISONFLAGS)
-ifeq ($(MinGW), yes)
-LINKWITH := -l$(ICEUTIL_LIBNAME) $(MCPP_LIBS)
-$(DLLNAME): $(OBJS)
- $(CXX) -shared $(LDFLAGS) -o $(DLLNAME) $(OBJS) $(LINKWITH)
-
-install:: all
- $(call installprogram,$(DLLNAME),$(install_bindir))
-else
-LINKWITH := -lIceUtil $(MCPP_LIBS)
+LINKWITH := $(BASELIBS) $(MCPP_LIBS)
ifeq ($(STATICLIBS),yes)
$(libdir)/$(LIBNAME): $(OBJS)
rm -f $@
@@ -71,7 +58,7 @@ $(libdir)/$(SONAME): $(libdir)/$(LIBFILENAME)
$(libdir)/$(LIBNAME): $(libdir)/$(SONAME)
rm -f $@
ln -s $(SONAME) $@
-endif
+
install:: all
$(call installlib,$(install_libdir),$(libdir),$(LIBFILENAME),$(SONAME),$(LIBNAME))
endif
diff --git a/cpp/src/slice2confluence/Makefile b/cpp/src/slice2confluence/Makefile
index ac690206e08..bf617791faa 100644
--- a/cpp/src/slice2confluence/Makefile
+++ b/cpp/src/slice2confluence/Makefile
@@ -25,7 +25,7 @@ CPPFLAGS := -I. $(CPPFLAGS)
$(NAME): $(OBJS)
rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(OBJS) -lSlice $(BASELIBS) $(MCPP_RPATH_LINK)
+ $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(SLICE_LIBS) $(MCPP_RPATH_LINK)
install:: all
$(call installprogram,$(NAME),$(install_bindir))
diff --git a/cpp/src/slice2cpp/Makefile b/cpp/src/slice2cpp/Makefile
index 167f35e7dc8..573f53d96d0 100644
--- a/cpp/src/slice2cpp/Makefile
+++ b/cpp/src/slice2cpp/Makefile
@@ -9,13 +9,7 @@
top_srcdir = ../..
-include $(top_srcdir)/config/Make.rules.common
-
-ifeq ($(MinGW), yes)
- NAME = $(top_srcdir)/bin/slice2cpp.exe
-else
- NAME = $(top_srcdir)/bin/slice2cpp
-endif
+NAME = $(top_srcdir)/bin/slice2cpp
TARGETS = $(NAME)
@@ -28,15 +22,10 @@ include $(top_srcdir)/config/Make.rules
CPPFLAGS := -I. $(CPPFLAGS)
-ifeq ($(MinGW), yes)
-$(NAME): $(OBJS)
- rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(OBJS) -lslice$(COMPSUFFIX)$(SOVERSION)$(LIBSUFFIX) $(BASELIBS) $(MCPP_RPATH_LINK)
-else
$(NAME): $(OBJS)
rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(OBJS) -lSlice $(BASELIBS) $(MCPP_RPATH_LINK)
-endif
+ $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(SLICE_LIBS) $(MCPP_RPATH_LINK)
+
install:: all
$(call installprogram,$(NAME),$(install_bindir))
diff --git a/cpp/src/slice2cs/Makefile b/cpp/src/slice2cs/Makefile
index 8a9cfd14b3f..594b421e61c 100644
--- a/cpp/src/slice2cs/Makefile
+++ b/cpp/src/slice2cs/Makefile
@@ -24,7 +24,7 @@ CPPFLAGS := -I. $(CPPFLAGS)
$(NAME): $(OBJS)
rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(OBJS) -lSlice $(BASELIBS) $(MCPP_RPATH_LINK)
+ $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(SLICE_LIBS) $(MCPP_RPATH_LINK)
install:: all
$(call installprogram,$(NAME),$(install_bindir))
diff --git a/cpp/src/slice2freeze/Makefile b/cpp/src/slice2freeze/Makefile
index c692a294270..38750f627e0 100644
--- a/cpp/src/slice2freeze/Makefile
+++ b/cpp/src/slice2freeze/Makefile
@@ -23,7 +23,7 @@ CPPFLAGS := -I. $(CPPFLAGS)
$(NAME): $(OBJS)
rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(OBJS) -lSlice $(BASELIBS) $(MCPP_RPATH_LINK)
+ $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(SLICE_LIBS) $(MCPP_RPATH_LINK)
install:: all
$(call installprogram,$(NAME),$(install_bindir))
diff --git a/cpp/src/slice2freezej/Makefile b/cpp/src/slice2freezej/Makefile
index afe12524b0e..a65bda333a8 100644
--- a/cpp/src/slice2freezej/Makefile
+++ b/cpp/src/slice2freezej/Makefile
@@ -23,7 +23,7 @@ CPPFLAGS := -I. $(CPPFLAGS)
$(NAME): $(OBJS)
rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(OBJS) -lSlice $(BASELIBS) $(MCPP_RPATH_LINK)
+ $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(SLICE_LIBS) $(MCPP_RPATH_LINK)
install:: all
$(call installprogram,$(NAME),$(install_bindir))
diff --git a/cpp/src/slice2html/Makefile b/cpp/src/slice2html/Makefile
index 40f75120396..2caeaa9a23e 100644
--- a/cpp/src/slice2html/Makefile
+++ b/cpp/src/slice2html/Makefile
@@ -24,7 +24,7 @@ CPPFLAGS := -I. $(CPPFLAGS)
$(NAME): $(OBJS)
rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(OBJS) -lSlice $(BASELIBS) $(MCPP_RPATH_LINK)
+ $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(SLICE_LIBS) $(MCPP_RPATH_LINK)
install:: all
$(call installprogram,$(NAME),$(install_bindir))
diff --git a/cpp/src/slice2java/Makefile b/cpp/src/slice2java/Makefile
index b834a9d94df..c39eb6c9375 100644
--- a/cpp/src/slice2java/Makefile
+++ b/cpp/src/slice2java/Makefile
@@ -24,7 +24,7 @@ CPPFLAGS := -I. $(CPPFLAGS)
$(NAME): $(OBJS)
rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(OBJS) -lSlice $(BASELIBS) $(MCPP_RPATH_LINK)
+ $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(SLICE_LIBS) $(MCPP_RPATH_LINK)
install:: all
$(call installprogram,$(NAME),$(install_bindir))
diff --git a/cpp/src/slice2php/Makefile b/cpp/src/slice2php/Makefile
index 34418b68ee5..0610db0ffc6 100644
--- a/cpp/src/slice2php/Makefile
+++ b/cpp/src/slice2php/Makefile
@@ -23,7 +23,7 @@ CPPFLAGS := -I. $(CPPFLAGS)
$(NAME): $(OBJS)
rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(OBJS) -lSlice $(BASELIBS) $(MCPP_RPATH_LINK)
+ $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(SLICE_LIBS) $(MCPP_RPATH_LINK)
install:: all
$(call installprogram,$(NAME),$(install_bindir))
diff --git a/cpp/src/slice2py/Makefile b/cpp/src/slice2py/Makefile
index 12472ff7104..1a549ecbdd1 100644
--- a/cpp/src/slice2py/Makefile
+++ b/cpp/src/slice2py/Makefile
@@ -23,7 +23,7 @@ CPPFLAGS := -I. $(CPPFLAGS)
$(NAME): $(OBJS)
rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(OBJS) -lSlice $(BASELIBS) $(MCPP_RPATH_LINK)
+ $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(SLICE_LIBS) $(MCPP_RPATH_LINK)
install:: all
$(call installprogram,$(NAME),$(install_bindir))
diff --git a/cpp/src/slice2rb/Makefile b/cpp/src/slice2rb/Makefile
index 1e4df68e074..f3cd62653a3 100644
--- a/cpp/src/slice2rb/Makefile
+++ b/cpp/src/slice2rb/Makefile
@@ -9,13 +9,7 @@
top_srcdir = ../..
-include $(top_srcdir)/config/Make.rules.common
-
-ifeq ($(MinGW), yes)
- NAME = $(top_srcdir)/bin/slice2rb.exe
-else
- NAME = $(top_srcdir)/bin/slice2rb
-endif
+NAME = $(top_srcdir)/bin/slice2rb
TARGETS = $(NAME)
@@ -27,15 +21,9 @@ include $(top_srcdir)/config/Make.rules
CPPFLAGS := -I. $(CPPFLAGS)
-ifeq ($(MinGW), yes)
-$(NAME): $(OBJS)
- rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(OBJS) -lslice$(COMPSUFFIX)$(SOVERSION)$(LIBSUFFIX) $(BASELIBS) $(MCPP_RPATH_LINK)
-else
$(NAME): $(OBJS)
rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(OBJS) -lSlice $(BASELIBS) $(MCPP_RPATH_LINK)
-endif
+ $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(SLICE_LIBS) $(MCPP_RPATH_LINK)
install:: all
$(call installprogram,$(NAME),$(install_bindir))
diff --git a/cpp/test/Glacier2/ssl/Makefile b/cpp/test/Glacier2/ssl/Makefile
index 5e2de9ca1b9..8960d1c114b 100644
--- a/cpp/test/Glacier2/ssl/Makefile
+++ b/cpp/test/Glacier2/ssl/Makefile
@@ -31,6 +31,6 @@ $(CLIENT): $(OBJS) $(COBJS)
$(SERVER): $(OBJS) $(SOBJS)
rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(SOBJS) $(LIBS) -lGlacier2 $(OPENSSL_RPATH_LINK) -lIceSSL
+ $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(SOBJS) $(ICESSL_LIBS) -lGlacier2 $(OPENSSL_RPATH_LINK)
include .depend
diff --git a/cpp/test/Ice/info/Makefile b/cpp/test/Ice/info/Makefile
index e6d9f6435a9..b0c6690517c 100644
--- a/cpp/test/Ice/info/Makefile
+++ b/cpp/test/Ice/info/Makefile
@@ -31,18 +31,14 @@ SLICE_SRCS = Test.ice
include $(top_srcdir)/config/Make.rules
-ifneq ($(MinGW), yes)
- ICESSL_LIBNAME = IceSSL
-endif
-
CPPFLAGS := -I. -I../../include $(CPPFLAGS)
$(CLIENT): $(COBJS)
rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(COBJS) $(OPENSSL_RPATH_LINK) $(LIBS) -l$(ICESSL_LIBNAME)
+ $(CXX) $(LDFLAGS) -o $@ $(COBJS) $(OPENSSL_RPATH_LINK) $(ICESSL_LIBS)
$(SERVER): $(SOBJS)
rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(SOBJS) $(LIBS) -l$(ICESSL_LIBNAME)
+ $(CXX) $(LDFLAGS) -o $@ $(SOBJS) $(ICESSL_LIBS)
include .depend
diff --git a/cpp/test/Ice/plugin/Makefile b/cpp/test/Ice/plugin/Makefile
index ab9ffbdee24..74086c42da4 100644
--- a/cpp/test/Ice/plugin/Makefile
+++ b/cpp/test/Ice/plugin/Makefile
@@ -10,10 +10,10 @@
top_srcdir = ../../..
PLUGINLIBFILENAME = $(call mklibfilename,TestPlugin,$(VERSION))
-PLUGINSONAME = $(call mksoname,TestPlugin,$(SOVERSION))
-PLUGINLIBNAME = $(call mklibname,TestPlugin)
-CLIENT = client
-PLUGINDIR = plugins
+PLUGINSONAME = $(call mksoname,TestPlugin,$(SOVERSION))
+PLUGINLIBNAME = $(call mklibname,TestPlugin)
+CLIENT = client
+PLUGINDIR = plugins
TARGETS = $(CLIENT) $(call mklibtargets,$(PLUGINDIR)/$(PLUGINLIBFILENAME),$(PLUGINDIR)/$(PLUGINSONAME),$(PLUGINDIR)/$(PLUGINLIBNAME))
diff --git a/cpp/test/IceGrid/session/Makefile b/cpp/test/IceGrid/session/Makefile
index 781dab9b783..81cca997401 100644
--- a/cpp/test/IceGrid/session/Makefile
+++ b/cpp/test/IceGrid/session/Makefile
@@ -43,7 +43,7 @@ $(VERIFIER): $(VOBJS)
$(SERVER): $(SOBJS)
rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(SOBJS) -lGlacier2 -lIceSSL $(LIBS) $(OPENSSL_RPATH_LINK)
+ $(CXX) $(LDFLAGS) -o $@ $(SOBJS) -lGlacier2 $(ICESSL_LIBS) $(OPENSSL_RPATH_LINK)
clean::
-rm -rf db/node db/registry db/node-1 db/replica-*
diff --git a/cpp/test/IceSSL/configuration/Makefile b/cpp/test/IceSSL/configuration/Makefile
index 776f8219eea..177b4887fb3 100644
--- a/cpp/test/IceSSL/configuration/Makefile
+++ b/cpp/test/IceSSL/configuration/Makefile
@@ -31,18 +31,14 @@ GENPIC = no
include $(top_srcdir)/config/Make.rules
-ifneq ($(MinGW), yes)
-ICESSL_LIBNAME = IceSSL
-endif
-
CPPFLAGS := -I. -I../../include $(CPPFLAGS)
$(CLIENT): $(COBJS)
rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(COBJS) $(LIBS) $(OPENSSL_RPATH_LINK) -l$(ICESSL_LIBNAME)
+ $(CXX) $(LDFLAGS) -o $@ $(COBJS) $(OPENSSL_RPATH_LINK) $(ICESSL_LIBS)
$(SERVER): $(SOBJS)
rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(SOBJS) $(LIBS) $(OPENSSL_RPATH_LINK) -l$(ICESSL_LIBNAME)
+ $(CXX) $(LDFLAGS) -o $@ $(SOBJS) $(OPENSSL_RPATH_LINK) $(ICESSL_LIBS)
include .depend
diff --git a/cpp/test/Makefile b/cpp/test/Makefile
index 403c998684b..571e860e31d 100644
--- a/cpp/test/Makefile
+++ b/cpp/test/Makefile
@@ -15,15 +15,15 @@ SUBDIRS = IceUtil \
Slice \
Ice \
IceSSL
-
-ifneq ($(MinGW), yes)
+
+ifeq ($(findstring MINGW,$(UNAME)),)
SUBDIRS := $(SUBDIRS) \
- IceBox \
- IceStorm \
- Freeze \
- FreezeScript \
- Glacier2 \
- IceGrid
+ IceBox \
+ IceStorm \
+ Freeze \
+ FreezeScript \
+ Glacier2 \
+ IceGrid
endif
diff --git a/rb/INSTALL.WINDOWS b/rb/INSTALL.WINDOWS
index bf75a3dbbba..140c4e9041d 100644
--- a/rb/INSTALL.WINDOWS
+++ b/rb/INSTALL.WINDOWS
@@ -14,10 +14,9 @@ Build Environment
To build Ice for Ruby you must have the following:
- - Ice @ver@ for C++
- - Ruby 1.9.3
- - MinGW from Ruby Development Kit
- - Cygwin with make package
+- Ice @ver@ for C++
+- Ruby 1.9.3
+- Ruby Development Kit 4.5.2
The Ruby distribution for Windows uses the MinGW compiler, therefore
MinGW is the only compiler supported by Ice for Ruby.
@@ -46,12 +45,6 @@ your build environment:
http://rubyinstaller.org/downloads/
-4. You have installed Cygwin and included the "make" package in your
- installation. See the link below for more information on installing
- Cygwin:
-
- http://cygwin.com/install.html
-
If you selected different installation directories, you will need to
modify the relevant path names in the steps below to match your
@@ -68,29 +61,30 @@ Compiling Ice for Ruby
Follow these steps to build the Ice extension for Ruby:
-1) Open a Cygwin command prompt
+1) Open a Windows command prompt
-2) Add Ruby to your PATH:
+2) Add Ruby to your environment:
- $ export PATH=/cygdrive/c/Ruby193/bin:$PATH
+ > C:\Ruby193\bin\setrbvars.bat
3) Add MinGW from the Ruby Development Kit to your PATH:
- $ export PATH=/cygdrive/c/RubyDevKit-4.5.2/mingw/bin:$PATH
+ > C:\RubyDevKit-4.5.2\devkitvars.bat
4) Change to the Ice for Ruby source directory:
- $ cd Ice-@ver@/rb
+ > cd Ice-@ver@/rb
-5) If you installed the Ice @ver@ distribution in a non-standard
- location, set the ICE_HOME environment variable with the Ice
+5) If you have not built Ice for C++ from the cpp subdirectory or if
+ you have installed the Ice @ver@ for C++ development kit in a
+ non-standard location, set the ICE_HOME environment variable to the
installation directory. For example:
- $ export ICE_HOME=C:\Ice-@ver@
+ > set ICE_HOME=C:\Ice-@ver@
6) Run make:
- $ make
+ > make
If no errors occurred, you can now begin using Ice for Ruby.
@@ -106,7 +100,7 @@ test suite. Python is required to run the test suite:
The test suites require that the Ice for C++ tests be built in the cpp
subdirectory of this source distribution.
-Open a Windows (not Cygwin) command window and change to the top-level
+Open a Windows command prompt and change to the top-level
directory. At the command prompt, execute:
> python allTests.py
diff --git a/rb/config/Make.rules b/rb/config/Make.rules
index 8085cc1fbf5..1691249b29e 100644
--- a/rb/config/Make.rules
+++ b/rb/config/Make.rules
@@ -117,11 +117,7 @@ ice_require_cpp = yes
include $(top_srcdir)/../cpp/config/Make.rules.common
-ifeq ($(MinGW), yes)
- slice_translator = slice2rb.exe
-else
- slice_translator = slice2rb
-endif
+slice_translator = slice2rb
ifeq ($(shell test -f $(top_srcdir)/config/Make.common.rules && echo 0),0)
include $(top_srcdir)/config/Make.common.rules
@@ -129,7 +125,7 @@ else
include $(top_srcdir)/../config/Make.common.rules
endif
-libdir = $(top_srcdir)/ruby
+libdir = $(top_srcdir)/ruby
install_rubydir = $(prefix)/ruby
install_libdir = $(prefix)/ruby
install_bindir = $(prefix)/$(binsubdir)
@@ -137,53 +133,29 @@ install_bindir = $(prefix)/$(binsubdir)
#
# Platform specific definitions
#
-ifeq ($(MinGW), yes)
- include $(top_srcdir)/../cpp/config/Make.rules.MINGW
+ifeq ($(shell test -f $(top_srcdir)/config/Make.rules.$(UNAME) && echo 0),0)
+ configdir = $(top_srcdir)/config
else
- ifeq ($(shell test -f $(top_srcdir)/config/Make.rules.$(UNAME) && echo 0),0)
- configdir = $(top_srcdir)/config
- else
- configdir = $(top_srcdir)/../cpp/config
- endif
- include $(configdir)/Make.rules.$(UNAME)
-endif
-
-ifeq ($(MinGW), yes)
- ice_cpp_dir_win := $(shell $(top_srcdir)/../cpp/config/cygpath-win.sh $(ice_cpp_dir))
- ifdef ice_src_dist
- ifeq ($(ice_cpp_dir), $(ice_dir)/cpp)
- ICE_BIN_DIR = -L"$(ice_cpp_dir_win)/bin"
- else
- ICE_BIN_DIR = -L"$(ice_cpp_dir_win)/$(binsubdir)"
- endif
- ICE_FLAGS = -I"$(ice_cpp_dir_win)\include"
- endif
+ configdir = $(top_srcdir)/../cpp/config
+endif
+include $(configdir)/Make.rules.$(UNAME)
- ifdef ice_bin_dist
- ice_dir_win := $(shell $(top_srcdir)/../cpp/config/cygpath-win.sh $(ice_dir))
- ICE_BIN_DIR = -L"$(ice_dir_win)/$(binsubdir)"
- ICE_FLAGS = -I"$(ice_dir_win)/include"
- endif
- ICE_LIBS = $(ICE_BIN_DIR) -l$(ICE_LIBNAME) -l$(SLICE_LIBNAME) -l$(ICEUTIL_LIBNAME)
-else
- ifdef ice_src_dist
- ifeq ($(ice_cpp_dir), $(ice_dir)/cpp)
- ICE_LIB_DIR = -L$(ice_cpp_dir)/lib
- else
- ICE_LIB_DIR = -L$(ice_cpp_dir)/$(libsubdir)
- endif
- ICE_FLAGS = -I$(ice_cpp_dir)/include
- endif
- ifdef ice_bin_dist
- ICE_LIB_DIR = -L$(ice_dir)/$(libsubdir)
- ICE_FLAGS = -I$(ice_dir)/include
- endif
- ICE_LIBS = $(ICE_LIB_DIR) -lIce -lSlice -lIceUtil
+ifdef ice_src_dist
+ ifeq ($(ice_cpp_dir), $(ice_dir)/cpp)
+ ICE_LIB_DIR = -L$(ice_cpp_dir)/lib
+ else
+ ICE_LIB_DIR = -L$(ice_cpp_dir)/$(libsubdir)
+ endif
+ ICE_FLAGS = -I$(ice_cpp_dir)/include
endif
-
+ifdef ice_bin_dist
+ ICE_LIB_DIR = -L$(ice_dir)/$(libsubdir)
+ ICE_FLAGS = -I$(ice_dir)/include
+endif
+ICE_LIBS = $(ICE_LIB_DIR) -lIce -lSlice -lIceUtil
ifneq ($(embedded_runpath_prefix),)
- runpath_libdir := $(embedded_runpath_prefix)/$(libsubdir)
+ runpath_libdir := $(embedded_runpath_prefix)/$(libsubdir)
endif
CPPFLAGS =
@@ -192,37 +164,33 @@ SLICE2RBFLAGS = $(ICECPPFLAGS)
LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir)
ifdef ice_src_dist
- ifeq ($(ice_cpp_dir), $(ice_dir)/cpp)
- ifeq ($(MinGW), yes)
- SLICEPARSERLIB = $(ice_cpp_dir)/bin/$(SLICE_LIBNAME).dll
- else
- SLICEPARSERLIB = $(ice_cpp_dir)/lib/$(call mklibfilename,Slice,$(VERSION))
- endif
- SLICE2RB = $(ice_cpp_dir)/bin/$(slice_translator)
- else
- ifeq ($(MinGW), yes)
- SLICEPARSERLIB = $(ice_cpp_dir)/$(binsubdir)/$(SLICE_LIBNAME).dll
- else
- SLICEPARSERLIB = $(ice_cpp_dir)/$(libsubdir)/$(call mklibfilename,Slice,$(VERSION))
- endif
- SLICE2RB = $(ice_cpp_dir)/$(binsubdir)/$(slice_translator)
+ ifeq ($(ice_cpp_dir), $(ice_dir)/cpp)
+ ifeq ($(SLICEPARSERLIB),)
+ SLICEPARSERLIB = $(ice_cpp_dir)/lib/$(call mklibfilename,Slice,$(VERSION))
endif
+ SLICE2RB = $(ice_cpp_dir)/bin/$(slice_translator)
+ else
+ SLICEPARSERLIB = $(ice_cpp_dir)/$(libsubdir)/$(call mklibfilename,Slice,$(VERSION))
+ SLICE2RB = $(ice_cpp_dir)/$(binsubdir)/$(slice_translator)
+ endif
else
- ifeq ($(MinGW), yes)
- SLICEPARSERLIB = $(ice_dir)/$(binsubdir)/$(SLICE_LIBNAME).dll
- else
- SLICEPARSERLIB = $(ice_dir)/$(libsubdir)/$(call mklibfilename,Slice,$(VERSION))
- endif
- SLICE2CPP = $(ice_dir)/$(binsubdir)/$(slice_translator)
+ SLICEPARSERLIB = $(ice_dir)/$(libsubdir)/$(call mklibfilename,Slice,$(VERSION))
+ SLICE2CPP = $(ice_dir)/$(binsubdir)/$(slice_translator)
endif
#
# A Ruby extension library cannot have a "lib" prefix, so Ruby-specific
# functions are defined that strip "lib" from the regular library name.
#
-mkrblibfilename = $(subst lib,,$(call mklibfilename,$(1),$(2)))
-mkrbsoname = $(subst lib,,$(call mksoname,$(1),$(2)))
-mkrblibname = $(subst lib,,$(call mklibname,$(1)))
+ifeq ($(mkrblibfilename),)
+ mkrblibfilename = $(subst lib,,$(call mklibfilename,$(1),$(2)))
+endif
+ifeq ($(mkrbsoname),)
+ mkrbsoname = $(subst lib,,$(call mksoname,$(1),$(2)))
+endif
+ifeq ($(mkrblibname),)
+ mkrblibname = $(subst lib,,$(call mklibname,$(1)))
+endif
EVERYTHING = all depend clean install
diff --git a/rb/config/Make.rules.Darwin b/rb/config/Make.rules.Darwin
index 611540d25b6..f4e89a32caf 100644
--- a/rb/config/Make.rules.Darwin
+++ b/rb/config/Make.rules.Darwin
@@ -62,7 +62,4 @@ ICE_OS_LIBS = -ldl
ICONV_LIB = -liconv
-
PLATFORM_HAS_READLINE := no
-
-export DYLD_LIBRARY_PATH := $(libdir):$(DYLD_LIBRARY_PATH)
diff --git a/rb/config/Make.rules.MINGW b/rb/config/Make.rules.MINGW
new file mode 100644
index 00000000000..34b13386746
--- /dev/null
+++ b/rb/config/Make.rules.MINGW
@@ -0,0 +1,25 @@
+# **********************************************************************
+#
+# Copyright (c) 2003-2012 ZeroC, Inc. All rights reserved.
+#
+# This copy of Ice is licensed to you under the terms described in the
+# ICE_LICENSE file included in this distribution.
+#
+# **********************************************************************
+
+#
+# Include C++ Make.rules.MINGW
+#
+include $(top_srcdir)/../cpp/config/Make.rules.MINGW
+
+mkrblibfilename = $(1).so
+mkrbsoname = $(if $(2),lib$(1).xxx.$(2),lib$(1).xxx)
+mkrblibname = $(1).xxx
+
+libdir = $(top_srcdir)/ruby
+
+ifdef ice_src_dist
+ ifeq ($(ice_cpp_dir), $(ice_dir)/cpp)
+ SLICEPARSERLIB = $(ice_cpp_dir)/bin/$(call mklibfilename,Slice,$(VERSION))
+ endif
+endif \ No newline at end of file
diff --git a/rb/src/IceRuby/Makefile b/rb/src/IceRuby/Makefile
index b57de8b3252..99f879cfaa3 100644
--- a/rb/src/IceRuby/Makefile
+++ b/rb/src/IceRuby/Makefile
@@ -11,15 +11,10 @@ top_srcdir = ../..
include $(top_srcdir)/../cpp/config/Make.rules.common
-ifeq ($(MinGW), yes)
- DLLNAME = $(libdir)/IceRuby.so
- TARGETS = $(DLLNAME)
-else
- LIBFILENAME = $(call mkrblibfilename,IceRuby,$(VERSION))
- SONAME = $(call mkrbsoname,IceRuby,$(SOVERSION))
- LIBNAME = $(call mkrblibname,IceRuby)
- TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME))
-endif
+LIBFILENAME = $(call mkrblibfilename,IceRuby,$(VERSION))
+SONAME = $(call mkrbsoname,IceRuby,$(SOVERSION))
+LIBNAME = $(call mkrblibname,IceRuby)
+TARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME))
OBJS = Connection.o \
Communicator.o \
@@ -42,16 +37,6 @@ include $(top_srcdir)/config/Make.rules
CPPFLAGS := -I. -I.. $(CPPFLAGS) $(ICE_FLAGS) $(RUBY_FLAGS)
LINKWITH := -L"$(libdir)" $(ICE_LIBS) $(RUBY_LIBS) $(CXXLIBS)
-ifeq ($(MinGW), yes)
-
-$(DLLNAME): $(OBJS)
- $(CXX) -shared $(LDFLAGS) -o $(DLLNAME) $(OBJS) $(LINKWITH)
-
-install:: all
- $(call installprogram,$(DLLNAME),$(install_libdir))
-
-else
-
$(libdir)/$(LIBFILENAME): $(OBJS)
rm -f $@
$(call mkshlib,$@,$(SONAME),$(OBJS),$(LINKWITH))
@@ -67,6 +52,4 @@ $(libdir)/$(LIBNAME): $(libdir)/$(SONAME)
install:: all
$(call installlib,$(install_libdir),$(libdir),$(LIBFILENAME),$(SONAME),$(LIBNAME))
-endif
-
#include .depend
diff --git a/scripts/TestUtil.py b/scripts/TestUtil.py
index aa83cc84d36..2592c3ae55d 100755
--- a/scripts/TestUtil.py
+++ b/scripts/TestUtil.py
@@ -96,7 +96,9 @@ def getCppCompiler():
def isMINGW():
if not isWin32():
return False
- return getCppCompiler() == "MINGW"
+ # Ruby Installer DEVKIT sets the RI_DEVKIT environment variable,
+ # we check for this variable to detect the Ruby MINGW environment.
+ return os.environ.has_key("RI_DEVKIT")
def isVC90():
if not isWin32():