summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/Make.common.rules76
-rwxr-xr-xcpp/allDemos.py19
-rwxr-xr-xcpp/allTests.py2
-rw-r--r--cpp/config/Make.rules24
-rw-r--r--cpp/config/Make.rules.Darwin48
-rw-r--r--cpp/config/Make.rules.Linux168
-rw-r--r--cpp/demo/Freeze/backup/Makefile2
-rw-r--r--cpp/demo/Freeze/library/Makefile2
-rw-r--r--cpp/demo/Freeze/phonebook/Makefile2
-rw-r--r--cpp/lib/c++11/.gitignore1
-rw-r--r--cpp/src/Freeze/Makefile2
-rw-r--r--cpp/src/FreezeScript/Makefile2
-rw-r--r--cpp/src/Glacier2/Makefile2
-rw-r--r--cpp/src/Glacier2CryptPermissionsVerifier/Makefile2
-rw-r--r--cpp/src/Glacier2Lib/Makefile2
-rw-r--r--cpp/src/Ice/Makefile3
-rw-r--r--cpp/src/IceBox/Makefile8
-rw-r--r--cpp/src/IceDiscovery/Makefile3
-rw-r--r--cpp/src/IceGrid/Makefile2
-rw-r--r--cpp/src/IceGridLib/Makefile2
-rw-r--r--cpp/src/IcePatch2/Makefile2
-rw-r--r--cpp/src/IcePatch2Lib/Makefile1
-rw-r--r--cpp/src/IceSSL/Makefile3
-rw-r--r--cpp/src/IceStorm/Makefile4
-rw-r--r--cpp/src/IceStormLib/Makefile2
-rw-r--r--cpp/src/IceUtil/Makefile3
-rw-r--r--cpp/src/IceXML/Makefile2
-rw-r--r--cpp/src/Slice/Makefile3
-rw-r--r--cpp/src/slice2confluence/Makefile2
-rw-r--r--cpp/src/slice2cpp/Makefile2
-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/slice2js/Makefile2
-rw-r--r--cpp/src/slice2php/Makefile2
-rw-r--r--cpp/src/slice2py/Makefile2
-rw-r--r--cpp/src/slice2rb/Makefile2
-rw-r--r--cpp/test/IceGrid/admin/Makefile2
-rw-r--r--cpp/test/IceGrid/allocation/Makefile6
-rw-r--r--cpp/test/IceGrid/noRestartUpdate/AllTests.cpp24
-rw-r--r--cpp/test/IceGrid/replicaGroup/AllTests.cpp3
-rw-r--r--cpp/test/IceGrid/session/Makefile2
-rw-r--r--cpp/test/IceGrid/update/Makefile2
-rw-r--r--cs/config/Make.rules.cs13
-rw-r--r--demoscript/Util.py93
-rw-r--r--distribution/src/common/Make.rules11
-rw-r--r--distribution/src/deb/debian/patches/ice-build.patch26
-rw-r--r--js/config/Make.rules.js10
-rw-r--r--php/config/Make.rules.Darwin6
-rw-r--r--php/config/Make.rules.Linux16
-rw-r--r--php/config/Make.rules.php37
-rw-r--r--py/config/Make.rules41
-rw-r--r--py/config/Make.rules.Darwin4
-rw-r--r--py/config/Make.rules.Linux2
-rw-r--r--rb/config/Make.rules79
-rw-r--r--rb/config/Make.rules.Darwin13
-rw-r--r--rb/config/Make.rules.Linux15
-rwxr-xr-xscripts/TestUtil.py95
60 files changed, 480 insertions, 434 deletions
diff --git a/config/Make.common.rules b/config/Make.common.rules
index 2530905e205..b30b30cd4a6 100644
--- a/config/Make.common.rules
+++ b/config/Make.common.rules
@@ -63,7 +63,14 @@ endif
ifeq ($(UNAME),Linux)
ifeq ($(MACHINE_TYPE),x86_64)
#
- # Some Linux distributions like Debian/Ubuntu don't use /usr/lib64.
+ # Ubuntu.
+ #
+ ifeq ($(shell test -d /usr/lib/x86_64-linux-gnu && echo 0),0)
+ lp64suffix = /x86_64-linux-gnu
+ endif
+
+ #
+ # Rhel/SLES
#
ifeq ($(shell test -d /usr/lib64 && echo 0),0)
lp64suffix = 64
@@ -77,6 +84,10 @@ ifeq ($(UNAME),Linux)
endif
endif
+ifeq ($(shell test -d /usr/lib/i386-linux-gnu && echo 0),0)
+ lp32suffix = /i386-linux-gnu
+endif
+
ifeq ($(CPP11),yes)
ifneq ($(UNAME),Darwin)
cpp11libdirsuffix = /c++11
@@ -99,8 +110,23 @@ ifeq ($(LP64),yes)
libsubdir := lib$(lp64suffix)
binsubdir := bin$(lp64binsuffix)
else
- libsubdir := lib
+ libsubdir := lib$(lp32suffix)
binsubdir := bin
+ #
+ # For x86 builds in x86_64 machines lib64subdir points to the x86_64 lib
+ # directory and libsubdir to the x86 lib directory.
+ #
+ ifeq ($(MACHINE_TYPE),x86_64)
+ ifeq ($(UNAME),Linux)
+ ifeq ($(shell test -d /usr/lib/x86_64-linux-gnu && echo 0),0)
+ ifeq ($(ice_dir),/usr)
+ lib64subdir = lib/x86_64-linux-gnu
+ endif
+ else
+ lib64subdir = lib$(lp64suffix)
+ endif
+ endif
+ endif
endif
#
@@ -194,18 +220,6 @@ $(error slice_translator must be defined)
$(error Unable to find $(slice_translator) in $(ICE_HOME)/$(binsubdir), please verify ICE_HOME is properly configured and Ice is correctly installed.)
endif
ice_dir = $(ICE_HOME)
-
- ifeq ($(ice_dir),/usr)
- ifeq ($(LP64),yes)
- ifeq ($(shell test -d /usr/lib/x86_64-linux-gnu/ && echo 0),0)
- libsubdir = lib/x86_64-linux-gnu
- endif
- else
- ifeq ($(shell test -d /usr/lib/i386-linux-gnu/ && echo 0),0)
- libsubdir = lib/i386-linux-gnu
- endif
- endif
- endif
else
ifeq ($(shell test -f $(top_srcdir)/bin/$(slice_translator) && echo 0), 0)
ice_dir = $(top_srcdir)
@@ -278,19 +292,28 @@ endif
#
ifneq ($(ice_dir), /usr)
ifdef ice_src_dist
- ifeq ($(ice_cpp_dir), $(ice_dir)/cpp)
- ice_lib_dir = $(ice_cpp_dir)/lib
- else
- ice_lib_dir = $(ice_cpp_dir)/$(libsubdir)
- endif
+ ice_lib_dir = $(ice_cpp_dir)/$(libsubdir)
else
- ice_lib_dir = $(ice_dir)/$(libsubdir)
+ ifndef lib64subdir
+ ice_lib_dir = $(ice_dir)/$(libsubdir)
+ else
+ ice_lib_dir = $(ice_dir)/$(lib64subdir)
+ endif
endif
+ #
+ # We always set library path because the build needs to work
+ # whe slice compiler was built without RPATH
+ #
ifeq ($(UNAME),Linux)
export LD_LIBRARY_PATH := $(ice_lib_dir):$(LD_LIBRARY_PATH)
endif
+ ifeq ($(UNAME),Darwin)
+ export DYLD_LIBRARY_PATH := $(ice_lib_dir):$(DYLD_LIBRARY_PATH)
+ endif
+
+
ifeq ($(UNAME),SunOS)
ifeq ($(LP64),yes)
export LD_LIBRARY_PATH_64 := $(ice_lib_dir):$(LD_LIBRARY_PATH_64)
@@ -299,12 +322,6 @@ ifneq ($(ice_dir), /usr)
endif
endif
- ifdef ice_src_dist
- ifeq ($(UNAME),Darwin)
- export DYLD_LIBRARY_PATH := $(ice_lib_dir):$(DYLD_LIBRARY_PATH)
- endif
- endif
-
ifeq ($(UNAME),AIX)
export LIBPATH := $(ice_lib_dir):$(LIBPATH)
endif
@@ -390,12 +407,7 @@ endif
ifeq ($(installprogram),)
installprogram = $(INSTALL_PROGRAM) $(1) $(2); \
- if test -f $(2) ; \
- then \
- chmod a+rx $(2) ; \
- else \
- chmod a+rx $(2)/$(notdir $(1)) ; \
- fi
+ chmod a+rx $(2)/$(notdir $(1))
endif
ifeq ($(mkdir),)
diff --git a/cpp/allDemos.py b/cpp/allDemos.py
index ef5d576842c..b7d54ead583 100755
--- a/cpp/allDemos.py
+++ b/cpp/allDemos.py
@@ -47,8 +47,8 @@ demos = [
"IceDiscovery/hello",
"IceDiscovery/replication",
"IceStorm/clock",
+ "IceBox/hello",
"IceStorm/counter",
- "IceStorm/replicated",
"IceStorm/replicated2",
"IceGrid/allocate",
"IceGrid/customLoadBalancing",
@@ -62,7 +62,6 @@ demos = [
"Freeze/customEvictor",
"Freeze/phonebook",
"Freeze/library",
- "Freeze/backup",
"Freeze/transform",
"Freeze/casino",
"Manual/map_filesystem",
@@ -71,8 +70,20 @@ demos = [
"Manual/printer",
"Manual/lifecycle"]
-if not Util.isNoServices():
- demos += ["IceBox/hello", "IceGrid/icebox"]
+#
+# For this demos the descriptor hardcode the icebox name and will
+# not work with configurations that use different icebox names.
+#
+if Util.getIceBox().endswith("icebox"):
+ demos += ["IceStorm/replicated", "IceGrid/icebox"]
+
+#
+# Freeze backup doesn't work on x86 multiarch because it require to
+# use x86 db tools that are currently not available for x64
+# distributions.
+#
+if not Util.isX86():
+ demos += ["Freeze/backup"]
if __name__ == "__main__":
Util.run(demos)
diff --git a/cpp/allTests.py b/cpp/allTests.py
index 23ac33761d5..622b3dfe7a5 100755
--- a/cpp/allTests.py
+++ b/cpp/allTests.py
@@ -100,7 +100,7 @@ tests = [
("IceGrid/update", ["service", "novc100", "nomingw"]),
("IceGrid/noRestartUpdate", ["service", "novc100", "nomingw"]),
("IceGrid/activation", ["service", "novc100", "nomingw"]),
- ("IceGrid/replicaGroup", ["service", "novc100", "nomingw"]),
+ ("IceGrid/replicaGroup", ["service", "novc100", "nomingw", "noc++11", "nomultiarch"]),
("IceGrid/replication", ["service", "novc100", "nomingw", "nomx"]),
("IceGrid/allocation", ["service", "novc100", "nomingw"]),
("IceGrid/distribution", ["service", "novc100", "nomingw"]),
diff --git a/cpp/config/Make.rules b/cpp/config/Make.rules
index 915d28b729c..1520824a51e 100644
--- a/cpp/config/Make.rules
+++ b/cpp/config/Make.rules
@@ -34,6 +34,19 @@ prefix ?= /opt/Ice-$(VERSION)
create_runpath_symlink ?= no
#
+# Define embedded_runpath as no if you don't want any RPATH added to
+# the executables.
+#
+embedded_runpath ?= yes
+
+#
+# Define new_dtags as yes if you want the linker to enable the new style
+# dtags, this will cause the linker to add a runpath entry instead of
+# a rpath entry. This only aplly to gcc builds on linux
+#
+new_dtags ?= no
+
+#
# Define LP64 as yes or no if you want force a 32 or 64 bit. The
# default is platform-dependent. This property has no effect on
# OS X. On OS X, use CXXARCHFLAGS bellow to establish the build
@@ -167,7 +180,7 @@ else
endif
bindir = $(top_srcdir)/bin
-libdir = $(top_srcdir)/lib
+libdir = $(top_srcdir)/$(libsubdir)
headerdir = $(top_srcdir)/include
#
@@ -316,6 +329,10 @@ ifdef ice_src_dist
SLICE2CPP = $(bindir)/slice2cpp
SLICE2FREEZE = $(bindir)/slice2freeze
else
+ SLICEPARSERLIB = $(ice_dir)/$(libsubdir)/$(subst $(cpp11libsuffix),,$(call mklibfilename,Slice,$(VERSION)))
+ ifeq ($(wildcard $(SLICEPARSERLIB)),)
+ SLICEPARSERLIB = $(ice_dir)/$(lib64subdir)/$(subst $(cpp11libsuffix),,$(call mklibfilename,Slice,$(VERSION)))
+ endif
SLICEPARSERLIB = $(ice_dir)/$(libsubdir)/$(subst $(cpp11libsuffix),,$(call mklibfilename,Slice,$(VERSION)))
SLICE2CPP = $(ice_dir)/$(binsubdir)/slice2cpp
SLICE2FREEZE = $(ice_dir)/$(binsubdir)/slice2freeze
@@ -424,9 +441,4 @@ clean::
rm -f $(addprefix $(HDIR)/, $(addsuffix .h, $(basename $(SLICE_OBJS))))
endif
-ifneq ($(TEMPLATE_REPOSITORY),)
-clean::
- rm -fr $(TEMPLATE_REPOSITORY)
-endif
-
install::
diff --git a/cpp/config/Make.rules.Darwin b/cpp/config/Make.rules.Darwin
index 802a78d7dcc..b76d01b6fea 100644
--- a/cpp/config/Make.rules.Darwin
+++ b/cpp/config/Make.rules.Darwin
@@ -43,32 +43,38 @@ endif
#
CXXLIBS =
-LOADER_PATH = @loader_path
-
#
-# If embedded_runpath_prefix is set it has preference
+# If embedded_runpath is not set to yes we do not add
+# an rpath dir.
#
-ifneq ($(embedded_runpath_prefix),)
-RPATH_DIR = $(embedded_runpath_prefix)
-endif
+ifeq ($(embedded_runpath),yes)
+ LOADER_PATH = @loader_path
+
+ #
+ # If embedded_runpath_prefix is set it has preference
+ #
+ ifneq ($(embedded_runpath_prefix),)
+ RPATH_DIR = $(embedded_runpath_prefix)
+ endif
-ifeq ($(RPATH_DIR),)
-ifdef ice_src_dist
-RPATH_DIR = @loader_path/$(libdir)
-else
-RPATH_DIR = $(ice_dir)/$(libsubdir)
-endif
-endif
+ ifeq ($(RPATH_DIR),)
+ ifdef ice_src_dist
+ RPATH_DIR = @loader_path/$(libdir)
+ else
+ RPATH_DIR = $(ice_dir)/$(libsubdir)
+ endif
+ endif
-#
-# Clear rpath setting when doing a system install
-#
-ifeq ($(ice_dir),/usr)
-RPATH_DIR =
-endif
+ #
+ # Clear rpath setting when doing a system install
+ #
+ ifeq ($(ice_dir),/usr)
+ RPATH_DIR =
+ endif
-ifneq ($(RPATH_DIR),)
-LDEXEFLAGS = -Wl,-rpath,$(RPATH_DIR)
+ ifneq ($(RPATH_DIR),)
+ LDEXEFLAGS = -Wl,-rpath,$(RPATH_DIR)
+ endif
endif
ifdef ice_src_dist
diff --git a/cpp/config/Make.rules.Linux b/cpp/config/Make.rules.Linux
index ef24cff950a..657679a3310 100644
--- a/cpp/config/Make.rules.Linux
+++ b/cpp/config/Make.rules.Linux
@@ -41,93 +41,109 @@ ifeq ($(CXX),g++)
CPPFLAGS += -std=c++0x
endif
- ifeq ($(MACHINE),sparc64)
- #
- # We are an ultra, at least, and so have the atomic instructions
- #
- $(warning ===================================================================)
- $(warning Linux on SPARC is currently unsupported. The Ice team does not)
- $(warning maintain SPARC specific portions of the source code or build)
- $(warning system. Contact sales@zeroc.com if you wish to sponsor official)
- $(warning support.)
- $(warning ===================================================================)
- USE_SPARC_ASM = yes
- CXXARCHFLAGS += -mcpu=ultrasparc -pipe -Wno-deprecated -DUSE_SPARC_ASM
- endif
-
- ifeq ($(MACHINE),sparc)
- #
- # We are a sun4m or sun4c
- # On sun4m, there is a bug in some CPU/kernel/gcc configurations which
- # prevent us from using '-mcpu=v8'
- #
- $(warning ===================================================================)
- $(warning Linux on SPARC is currently unsupported. The Ice team does not)
- $(warning maintain SPARC specific portions of the source code or build)
- $(warning system. Contact sales@zeroc.com if you wish to sponsor official)
- $(warning support.)
- $(warning ===================================================================)
- USE_SPARC_ASM = no
- CXXARCHFLAGS += -mtune=v8 -pipe -Wno-deprecated -DICE_USE_MUTEX_SHARED
- endif
+ ifeq ($(MACHINE),sparc64)
+ #
+ # We are an ultra, at least, and so have the atomic instructions
+ #
+ $(warning ===================================================================)
+ $(warning Linux on SPARC is currently unsupported. The Ice team does not)
+ $(warning maintain SPARC specific portions of the source code or build)
+ $(warning system. Contact sales@zeroc.com if you wish to sponsor official)
+ $(warning support.)
+ $(warning ===================================================================)
+ USE_SPARC_ASM = yes
+ CXXARCHFLAGS += -mcpu=ultrasparc -pipe -Wno-deprecated -DUSE_SPARC_ASM
+ endif
- ifeq ($(MACHINE),x86_64)
- ifeq ($(LP64),yes)
- CXXARCHFLAGS += -m64
- else
- CXXARCHFLAGS += -m32
- endif
- endif
+ ifeq ($(MACHINE),sparc)
+ #
+ # We are a sun4m or sun4c
+ # On sun4m, there is a bug in some CPU/kernel/gcc configurations which
+ # prevent us from using '-mcpu=v8'
+ #
+ $(warning ===================================================================)
+ $(warning Linux on SPARC is currently unsupported. The Ice team does not)
+ $(warning maintain SPARC specific portions of the source code or build)
+ $(warning system. Contact sales@zeroc.com if you wish to sponsor official)
+ $(warning support.)
+ $(warning ===================================================================)
+ USE_SPARC_ASM = no
+ CXXARCHFLAGS += -mtune=v8 -pipe -Wno-deprecated -DICE_USE_MUTEX_SHARED
+ endif
- CXXFLAGS = $(CXXARCHFLAGS) -fvisibility=hidden -Wall -Werror -pthread
+ ifeq ($(MACHINE),x86_64)
+ ifeq ($(LP64),yes)
+ CXXARCHFLAGS += -m64
+ else
+ CXXARCHFLAGS += -m32
+ endif
+ endif
- ifneq ($(GENPIC),no)
- CXXFLAGS += -fPIC
- endif
+ CXXFLAGS = $(CXXARCHFLAGS) -fvisibility=hidden -Wall -Werror -pthread
- ifeq ($(OPTIMIZE),yes)
- CXXFLAGS += -O2 -DNDEBUG
- else
- CXXFLAGS += -g
- endif
-
- LOADER_PATH = \$$ORIGIN
-
- ifneq ($(embedded_runpath_prefix),)
- RPATH_DIR = $(embedded_runpath_prefix)
- endif
-
- ifeq ($(RPATH_DIR),)
- ifdef ice_src_dist
- RPATH_DIR = \$$ORIGIN/$(libdir)
- else
- RPATH_DIR = $(ice_dir)/$(libsubdir)
- endif
- endif
+ ifneq ($(GENPIC),no)
+ CXXFLAGS += -fPIC
+ endif
- #
- # Clear the rpath dir when doing a system install.
- #
- ifeq ($(ice_dir), /usr)
- RPATH_DIR =
- endif
+ ifeq ($(OPTIMIZE),yes)
+ CXXFLAGS += -O2 -DNDEBUG
+ else
+ CXXFLAGS += -g
+ endif
- ifneq ($(RPATH_DIR),)
- LDEXEFLAGS = -Wl,-rpath,$(RPATH_DIR)
- endif
+ #
+ # If embedded_runpath is not set to yes we do not add
+ # an rpath dir.
+ #
+ ifeq ($(embedded_runpath),yes)
+ LOADER_PATH = \$$ORIGIN
+ ifneq ($(embedded_runpath_prefix),)
+ RPATH_DIR = $(embedded_runpath_prefix)
+ endif
+
+ ifeq ($(RPATH_DIR),)
+ ifdef ice_src_dist
+ RPATH_DIR = \$$ORIGIN/$(libdir)
+ else
+ RPATH_DIR = $(ice_dir)/$(libsubdir)
+ endif
+ endif
+
+ #
+ # Clear the rpath dir when doing a system install.
+ #
+ ifeq ($(ice_dir), /usr)
+ RPATH_DIR =
+ endif
+
+ #
+ # Unless new_dtags is set to yes we use old style dtags, to add a RPATH
+ # entry instead of RUNPATH entry, this allow the plug-ins to load without
+ # need to set LD_LIBRARY_PATH
+ #
+ ifeq ($(new_dtags),yes)
+ DTAGS = -Wl,--enable-new-dtags
+ else
+ DTAGS = -Wl,--disable-new-dtags
+ endif
+
+ ifneq ($(RPATH_DIR),)
+ LDEXEFLAGS = $(DTAGS) -Wl,-rpath,$(RPATH_DIR)
+ endif
+ endif
- #
- # C++ run-time libraries, necessary for linking some shared libraries.
- #
- CXXLIBS =
+ #
+ # C++ run-time libraries, necessary for linking some shared libraries.
+ #
+ CXXLIBS =
- mkshlib = $(CXX) -shared $(LDFLAGS) -o $(1) -Wl,-h,$(2) $(3) $(4)
+ mkshlib = $(CXX) -shared $(LDFLAGS) -o $(1) -Wl,-h,$(2) $(3) $(4)
- mklib = ar cr $(1) $(2)
+ mklib = ar cr $(1) $(2)
- rpathlink = -Wl,-rpath-link,$(1)
+ rpathlink = -Wl,-rpath-link,$(1)
- LDPLATFORMFLAGS += -rdynamic
+ LDPLATFORMFLAGS += -rdynamic
endif
diff --git a/cpp/demo/Freeze/backup/Makefile b/cpp/demo/Freeze/backup/Makefile
index 1e71b7e638f..46c1dfb2076 100644
--- a/cpp/demo/Freeze/backup/Makefile
+++ b/cpp/demo/Freeze/backup/Makefile
@@ -23,7 +23,7 @@ CPPFLAGS := -I. $(CPPFLAGS)
$(CLIENT): $(OBJS)
rm -f $@
- $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(OBJS) $(DB_RPATH_LINK) -lFreeze $(LIBS)
+ $(CXX) $(LDFLAGS) $(LDEXEFLAGS) $(LDEXEFLAGS) -o $@ $(OBJS) $(DB_RPATH_LINK) -lFreeze $(LIBS)
# The slice2freeze rules are structured like this to avoid issues with
# parallel make.
diff --git a/cpp/demo/Freeze/library/Makefile b/cpp/demo/Freeze/library/Makefile
index 7e2e5faed69..358f84c0572 100644
--- a/cpp/demo/Freeze/library/Makefile
+++ b/cpp/demo/Freeze/library/Makefile
@@ -61,7 +61,7 @@ $(SERVER): $(SOBJS)
$(COLLOCATED): $(COLOBJS)
rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(COLOBJS) $(DB_RPATH_LINK) -lFreeze $(LIBS) $(READLINE_LIBS)
+ $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COLOBJS) $(DB_RPATH_LINK) -lFreeze $(LIBS) $(READLINE_LIBS)
# The slice2freeze rules are structured like this to avoid issues with
# parallel make.
diff --git a/cpp/demo/Freeze/phonebook/Makefile b/cpp/demo/Freeze/phonebook/Makefile
index d26f316be0d..3e58e60780b 100644
--- a/cpp/demo/Freeze/phonebook/Makefile
+++ b/cpp/demo/Freeze/phonebook/Makefile
@@ -57,7 +57,7 @@ $(CLIENT): $(COBJS)
$(SERVER): $(SOBJS)
rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(SOBJS) $(DB_RPATH_LINK) -lFreeze $(LIBS)
+ $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) $(DB_RPATH_LINK) -lFreeze $(LIBS)
$(COLLOCATED): $(COLOBJS)
rm -f $@
diff --git a/cpp/lib/c++11/.gitignore b/cpp/lib/c++11/.gitignore
deleted file mode 100644
index 39af5887579..00000000000
--- a/cpp/lib/c++11/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-# Dummy file, so that git retains this otherwise empty directory.
diff --git a/cpp/src/Freeze/Makefile b/cpp/src/Freeze/Makefile
index 558d92553f7..33be9920e99 100644
--- a/cpp/src/Freeze/Makefile
+++ b/cpp/src/Freeze/Makefile
@@ -79,6 +79,7 @@ clean::
-rm -f $(HDIR)/CatalogIndexList.h CatalogIndexList.cpp
$(libdir)/$(LIBFILENAME): $(OBJS)
+ @mkdir -p $(dir $@)
rm -f $@
$(call mkshlib,$@,$(SONAME),$(OBJS),$(LINKWITH))
@@ -87,6 +88,7 @@ $(libdir)/$(SONAME): $(libdir)/$(LIBFILENAME)
ln -s $(LIBFILENAME) $@
$(libdir)$(cpp11libdirsuffix)/$(LIBNAME): $(libdir)/$(SONAME)
+ @mkdir -p $(libdir)$(cpp11libdirsuffix)
rm -f $@
ln -s $(cpp11sonamedir)$(SONAME) $@
diff --git a/cpp/src/FreezeScript/Makefile b/cpp/src/FreezeScript/Makefile
index 04d83e89767..2d11448977d 100644
--- a/cpp/src/FreezeScript/Makefile
+++ b/cpp/src/FreezeScript/Makefile
@@ -37,7 +37,7 @@ OBJS = $(COMMON_OBJS) $(TRANSFORM_OBJS) $(DUMP_OBJS)
HDIR = $(headerdir)/FreezeScript
-RPATH_DIR = $(LOADER_PATH)/../lib
+RPATH_DIR = $(LOADER_PATH)/../$(libsubdir)
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/Glacier2/Makefile b/cpp/src/Glacier2/Makefile
index 1f0de439f88..25f6596236d 100644
--- a/cpp/src/Glacier2/Makefile
+++ b/cpp/src/Glacier2/Makefile
@@ -29,7 +29,7 @@ OBJS = Blobject.o \
SessionRouterI.o \
$(SLICE_OBJS)
-RPATH_DIR = $(LOADER_PATH)/../lib
+RPATH_DIR = $(LOADER_PATH)/../$(libsubdir)
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/Glacier2CryptPermissionsVerifier/Makefile b/cpp/src/Glacier2CryptPermissionsVerifier/Makefile
index 93b235065de..891d79f5072 100644
--- a/cpp/src/Glacier2CryptPermissionsVerifier/Makefile
+++ b/cpp/src/Glacier2CryptPermissionsVerifier/Makefile
@@ -27,6 +27,7 @@ CPPFLAGS := -I.. $(CPPFLAGS)
LINKWITH := $(BZIP2_RPATH_LINK) -lIce -lIceUtil -lGlacier2 $(ICEUTIL_OS_LIBS) $(CXXLIBS)
$(libdir)/$(LIBFILENAME): $(OBJS)
+ @mkdir -p $(dir $@)
rm -f $@
$(call mkshlib,$@,$(SONAME),$(OBJS),$(LINKWITH))
@@ -35,6 +36,7 @@ $(libdir)/$(SONAME): $(libdir)/$(LIBFILENAME)
ln -s $(LIBFILENAME) $@
$(libdir)$(cpp11libdirsuffix)/$(LIBNAME): $(libdir)/$(SONAME)
+ @mkdir -p $(libdir)$(cpp11libdirsuffix)
rm -f $@
ln -s $(cpp11sonamedir)$(SONAME) $@
diff --git a/cpp/src/Glacier2Lib/Makefile b/cpp/src/Glacier2Lib/Makefile
index 23f081a7895..78b574ba92b 100644
--- a/cpp/src/Glacier2Lib/Makefile
+++ b/cpp/src/Glacier2Lib/Makefile
@@ -38,6 +38,7 @@ SLICE2CPPFLAGS := --ice --include-dir Glacier2 --dll-export GLACIER2_API $(SLICE
LINKWITH := $(BZIP2_RPATH_LINK) -lIce -lIceUtil
$(libdir)/$(LIBFILENAME): $(OBJS) $(HDIR)/PermissionsVerifierF.h $(HDIR)/RouterF.h
+ @mkdir -p $(dir $@)
rm -f $@
$(call mkshlib,$@,$(SONAME),$(OBJS),$(LINKWITH))
@@ -46,6 +47,7 @@ $(libdir)/$(SONAME): $(libdir)/$(LIBFILENAME)
ln -s $(LIBFILENAME) $@
$(libdir)$(cpp11libdirsuffix)/$(LIBNAME): $(libdir)/$(SONAME)
+ @mkdir -p $(libdir)$(cpp11libdirsuffix)
rm -f $@
ln -s $(cpp11sonamedir)$(SONAME) $@
diff --git a/cpp/src/Ice/Makefile b/cpp/src/Ice/Makefile
index 2d8066de082..ec649e429ed 100644
--- a/cpp/src/Ice/Makefile
+++ b/cpp/src/Ice/Makefile
@@ -167,10 +167,12 @@ LINKWITH := -lIceUtil $(BZIP2_LIBS) $(ICE_OS_LIBS) $(ICONV_LIBS)
ifeq ($(STATICLIBS),yes)
$(libdir)/$(LIBNAME): $(OBJS)
+ @mkdir -p $(dir $@)
rm -f $@
$(call mklib,$@,$(OBJS))
else
$(libdir)/$(LIBFILENAME): $(OBJS)
+ @mkdir -p $(dir $@)
rm -f $@
$(call mkshlib,$@,$(SONAME),$(OBJS),$(LINKWITH))
@@ -179,6 +181,7 @@ $(libdir)/$(SONAME): $(libdir)/$(LIBFILENAME)
ln -s $(LIBFILENAME) $@
$(libdir)$(cpp11libdirsuffix)/$(LIBNAME): $(libdir)/$(SONAME)
+ @mkdir -p $(libdir)$(cpp11libdirsuffix)
rm -f $@
ln -s $(cpp11sonamedir)$(SONAME) $@
endif
diff --git a/cpp/src/IceBox/Makefile b/cpp/src/IceBox/Makefile
index 7eab34ce886..15385b77972 100644
--- a/cpp/src/IceBox/Makefile
+++ b/cpp/src/IceBox/Makefile
@@ -13,7 +13,7 @@ LIBFILENAME = $(call mklibfilename,IceBox,$(VERSION))
SONAME = $(call mksoname,IceBox,$(SOVERSION))
LIBNAME = $(call mklibname,IceBox)
-SERVER = $(bindir)/icebox
+SERVER = $(bindir)/icebox$(binsuffix)
ADMIN = $(bindir)/iceboxadmin
LIBTARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)$(cpp11libdirsuffix)/$(LIBNAME))
@@ -36,7 +36,7 @@ OBJS = $(LIB_OBJS) \
HDIR = $(headerdir)/IceBox
SDIR = $(slicedir)/IceBox
-RPATH_DIR = $(LOADER_PATH)/../lib
+RPATH_DIR = $(LOADER_PATH)/../$(libsubdir)
include $(top_srcdir)/config/Make.rules
@@ -45,6 +45,7 @@ SLICE2CPPFLAGS := --checksum --ice --dll-export ICE_BOX_API --include-dir IceBox
LINKWITH := $(BZIP2_RPATH_LINK) -lIce -lIceUtil
$(libdir)/$(LIBFILENAME): $(LIB_OBJS)
+ @mkdir -p $(dir $@)
rm -f $@
$(call mkshlib,$@,$(SONAME),$(LIB_OBJS),$(LINKWITH))
@@ -53,6 +54,7 @@ $(libdir)/$(SONAME): $(libdir)/$(LIBFILENAME)
ln -s $(LIBFILENAME) $@
$(libdir)$(cpp11libdirsuffix)/$(LIBNAME): $(libdir)/$(SONAME)
+ @mkdir -p $(libdir)$(cpp11libdirsuffix)
rm -f $@
ln -s $(cpp11sonamedir)$(SONAME) $@
@@ -66,7 +68,7 @@ $(ADMIN): $(AOBJS) $(LIBTARGETS)
install:: all
$(call installlib,$(DESTDIR)$(install_libdir),$(libdir),$(LIBFILENAME),$(SONAME),$(LIBNAME))
- $(call installprogram,$(SERVER),$(DESTDIR)$(install_bindir)/icebox$(binsuffix))
+ $(call installprogram,$(SERVER),$(DESTDIR)$(install_bindir))
$(call installdata,$(top_srcdir)/../man/man1/icebox.1,$(DESTDIR)$(install_mandir))
$(call installprogram,$(ADMIN),$(DESTDIR)$(install_bindir))
$(call installdata,$(top_srcdir)/../man/man1/iceboxadmin.1,$(DESTDIR)$(install_mandir))
diff --git a/cpp/src/IceDiscovery/Makefile b/cpp/src/IceDiscovery/Makefile
index db632cfa43b..e1a2651c114 100644
--- a/cpp/src/IceDiscovery/Makefile
+++ b/cpp/src/IceDiscovery/Makefile
@@ -34,10 +34,12 @@ LINKWITH := -lIce -lIceUtil $(CXXLIBS)
ifeq ($(STATICLIBS),yes)
$(libdir)/$(LIBNAME): $(OBJS)
+ @mkdir -p $(dir $@)
rm -f $@
$(call mklib,$@,$(OBJS))
else
$(libdir)/$(LIBFILENAME): $(OBJS)
+ @mkdir -p $(dir $@)
rm -f $@
$(call mkshlib,$@,$(SONAME),$(OBJS),$(LINKWITH))
@@ -46,6 +48,7 @@ $(libdir)/$(SONAME): $(libdir)/$(LIBFILENAME)
ln -s $(LIBFILENAME) $@
$(libdir)$(cpp11libdirsuffix)/$(LIBNAME): $(libdir)/$(SONAME)
+ @mkdir -p $(libdir)$(cpp11libdirsuffix)
rm -f $@
ln -s $(cpp11sonamedir)$(SONAME) $@
endif
diff --git a/cpp/src/IceGrid/Makefile b/cpp/src/IceGrid/Makefile
index 7ff86f06937..1078db19f7a 100644
--- a/cpp/src/IceGrid/Makefile
+++ b/cpp/src/IceGrid/Makefile
@@ -96,7 +96,7 @@ OBJS = $(ADMIN_OBJS) \
SDIR = $(slicedir)/IceGrid
-RPATH_DIR = $(LOADER_PATH)/../lib
+RPATH_DIR = $(LOADER_PATH)/../$(libsubdir)
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/IceGridLib/Makefile b/cpp/src/IceGridLib/Makefile
index 00fba8870c8..bd5c1c34b37 100644
--- a/cpp/src/IceGridLib/Makefile
+++ b/cpp/src/IceGridLib/Makefile
@@ -45,6 +45,7 @@ SLICE2CPPFLAGS := --checksum --ice --include-dir IceGrid --dll-export ICE_GRID_
LINKWITH := -lGlacier2 $(BZIP2_RPATH_LINK) -lIce -lIceUtil
$(libdir)/$(LIBFILENAME): $(OBJS)
+ @mkdir -p $(dir $@)
rm -f $@
$(call mkshlib,$@,$(SONAME),$(OBJS),$(LINKWITH))
@@ -53,6 +54,7 @@ $(libdir)/$(SONAME): $(libdir)/$(LIBFILENAME)
ln -s $(LIBFILENAME) $@
$(libdir)$(cpp11libdirsuffix)/$(LIBNAME): $(libdir)/$(SONAME)
+ @mkdir -p $(libdir)$(cpp11libdirsuffix)
rm -f $@
ln -s $(cpp11sonamedir)$(SONAME) $@
diff --git a/cpp/src/IcePatch2/Makefile b/cpp/src/IcePatch2/Makefile
index 0f98285f0a2..561db91da8e 100644
--- a/cpp/src/IcePatch2/Makefile
+++ b/cpp/src/IcePatch2/Makefile
@@ -26,7 +26,7 @@ OBJS = $(SOBJS) \
$(COBJS) \
$(CALCOBJS)
-RPATH_DIR = $(LOADER_PATH)/../lib
+RPATH_DIR = $(LOADER_PATH)/../$(libsubdir)
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/IcePatch2Lib/Makefile b/cpp/src/IcePatch2Lib/Makefile
index 4a7b2c0d91b..fa6e700ec04 100644
--- a/cpp/src/IcePatch2Lib/Makefile
+++ b/cpp/src/IcePatch2Lib/Makefile
@@ -32,6 +32,7 @@ SLICE2CPPFLAGS := --ice --include-dir IcePatch2 --dll-export ICE_PATCH2_API $(SL
LINKWITH := $(BZIP2_RPATH_LINK) -lIce -lIceUtil $(OPENSSL_LIBS) $(BZIP2_LIBS)
$(libdir)/$(LIBFILENAME): $(OBJS)
+ @mkdir -p $(dir $@)
rm -f $@
$(call mkshlib,$@,$(SONAME),$(OBJS),$(LINKWITH))
diff --git a/cpp/src/IceSSL/Makefile b/cpp/src/IceSSL/Makefile
index 8f4a27549c2..c06d4dfb6a0 100644
--- a/cpp/src/IceSSL/Makefile
+++ b/cpp/src/IceSSL/Makefile
@@ -59,10 +59,12 @@ LINKWITH := $(BZIP2_RPATH_LINK) -lIce -lIceUtil $(SSL_OS_LIBS) $(CXXLIBS)
ifeq ($(STATICLIBS),yes)
$(libdir)/$(LIBNAME): $(OBJS)
+ @mkdir -p $(dir $@)
rm -f $@
$(call mklib,$@,$(OBJS))
else
$(libdir)/$(LIBFILENAME): $(OBJS)
+ @mkdir -p $(dir $@)
rm -f $@
$(call mkshlib,$@,$(SONAME),$(OBJS),$(LINKWITH))
@@ -71,6 +73,7 @@ $(libdir)/$(SONAME): $(libdir)/$(LIBFILENAME)
ln -s $(LIBFILENAME) $@
$(libdir)$(cpp11libdirsuffix)/$(LIBNAME): $(libdir)/$(SONAME)
+ @mkdir -p $(libdir)$(cpp11libdirsuffix)
rm -f $@
ln -s $(cpp11sonamedir)$(SONAME) $@
endif
diff --git a/cpp/src/IceStorm/Makefile b/cpp/src/IceStorm/Makefile
index 03f056c7f18..da76317f5ed 100644
--- a/cpp/src/IceStorm/Makefile
+++ b/cpp/src/IceStorm/Makefile
@@ -62,7 +62,7 @@ OBJS = $(LIB_OBJS) \
$(AOBJS) \
$(MOBJS)
-RPATH_DIR = $(LOADER_PATH)/../lib
+RPATH_DIR = $(LOADER_PATH)/../$(libsubdir)
SLICE2FREEZECMD = $(SLICE2FREEZE) -I../.. --ice --include-dir IceStorm $(ICECPPFLAGS)
@@ -74,6 +74,7 @@ SLICE2CPPFLAGS := --ice --include-dir IceStorm $(SLICE2CPPFLAGS)
LINKWITH := $(BZIP2_RPATH_LINK) -lIceStorm -lIceGrid -lGlacier2 -lFreeze -lIceBox -lIce -lIceUtil
$(libdir)/$(LIBFILENAME): $(LIB_OBJS)
+ @mkdir -p $(dir $@)
rm -f $@
$(call mkshlib,$@,$(SONAME),$(LIB_OBJS),$(LINKWITH))
@@ -82,6 +83,7 @@ $(libdir)/$(SONAME): $(libdir)/$(LIBFILENAME)
ln -s $(LIBFILENAME) $@
$(libdir)$(cpp11libdirsuffix)/$(LIBNAME): $(libdir)/$(SONAME)
+ @mkdir -p $(libdir)$(cpp11libdirsuffix)
rm -f $@
ln -s $(cpp11sonamedir)$(SONAME) $@
diff --git a/cpp/src/IceStormLib/Makefile b/cpp/src/IceStormLib/Makefile
index 042e317556e..687050759d2 100644
--- a/cpp/src/IceStormLib/Makefile
+++ b/cpp/src/IceStormLib/Makefile
@@ -31,6 +31,7 @@ SLICE2CPPFLAGS := --ice --include-dir IceStorm --checksum --dll-export ICE_STORM
LINKWITH := $(BZIP2_RPATH_LINK) -lIce -lIceUtil
$(libdir)/$(LIBFILENAME): $(OBJS)
+ @mkdir -p $(dir $@)
rm -f $@
$(call mkshlib,$@,$(SONAME),$(OBJS),$(LINKWITH))
@@ -39,6 +40,7 @@ $(libdir)/$(SONAME): $(libdir)/$(LIBFILENAME)
ln -s $(LIBFILENAME) $@
$(libdir)$(cpp11libdirsuffix)/$(LIBNAME): $(libdir)/$(SONAME)
+ @mkdir -p $(libdir)$(cpp11libdirsuffix)
rm -f $@
ln -s $(cpp11sonamedir)$(SONAME) $@
diff --git a/cpp/src/IceUtil/Makefile b/cpp/src/IceUtil/Makefile
index 05656b1d7bd..69a91347364 100644
--- a/cpp/src/IceUtil/Makefile
+++ b/cpp/src/IceUtil/Makefile
@@ -45,10 +45,12 @@ LINKWITH := $(ICEUTIL_OS_LIBS)
ifeq ($(STATICLIBS),yes)
$(libdir)/$(LIBNAME): $(OBJS)
+ @mkdir -p $(dir $@)
rm -f $@
$(call mklib,$@,$(OBJS))
else
$(libdir)/$(LIBFILENAME): $(OBJS)
+ @mkdir -p $(dir $@)
rm -f $@
$(call mkshlib,$@,$(SONAME),$(OBJS),$(LINKWITH))
@@ -57,6 +59,7 @@ $(libdir)/$(SONAME): $(libdir)/$(LIBFILENAME)
ln -s $(LIBFILENAME) $@
$(libdir)$(cpp11libdirsuffix)/$(LIBNAME): $(libdir)/$(SONAME)
+ @mkdir -p $(libdir)$(cpp11libdirsuffix)
rm -f $@
ln -s $(cpp11sonamedir)$(SONAME) $@
endif
diff --git a/cpp/src/IceXML/Makefile b/cpp/src/IceXML/Makefile
index d0cbef06a1d..86d6f6a599e 100644
--- a/cpp/src/IceXML/Makefile
+++ b/cpp/src/IceXML/Makefile
@@ -24,6 +24,7 @@ CPPFLAGS := -I.. $(CPPFLAGS) -DICE_XML_API_EXPORTS $(EXPAT_FLAGS)
LINKWITH := -lIceUtil $(EXPAT_LIBS)
$(libdir)/$(LIBFILENAME): $(OBJS)
+ @mkdir -p $(dir $@)
rm -f $@
$(call mkshlib,$@,$(SONAME),$(OBJS),$(LINKWITH))
@@ -32,6 +33,7 @@ $(libdir)/$(SONAME): $(libdir)/$(LIBFILENAME)
ln -s $(LIBFILENAME) $@
$(libdir)$(cpp11libdirsuffix)/$(LIBNAME): $(libdir)/$(SONAME)
+ @mkdir -p $(libdir)$(cpp11libdirsuffix)
rm -f $@
ln -s $(cpp11sonamedir)$(SONAME) $@
diff --git a/cpp/src/Slice/Makefile b/cpp/src/Slice/Makefile
index bc9537cca4d..7984f5ee64b 100644
--- a/cpp/src/Slice/Makefile
+++ b/cpp/src/Slice/Makefile
@@ -40,10 +40,12 @@ BISONFLAGS := --name-prefix "slice_" $(BISONFLAGS)
LINKWITH := $(BASELIBS) $(MCPP_LIBS)
ifeq ($(STATICLIBS),yes)
$(libdir)/$(LIBNAME): $(OBJS)
+ @mkdir -p $(dir $@)
rm -f $@
$(call mklib,$@,$(OBJS))
else
$(libdir)/$(LIBFILENAME): $(OBJS)
+ @mkdir -p $(dir $@)
rm -f $@
$(call mkshlib,$@,$(SONAME),$(OBJS),$(LINKWITH))
@@ -52,6 +54,7 @@ $(libdir)/$(SONAME): $(libdir)/$(LIBFILENAME)
ln -s $(LIBFILENAME) $@
$(libdir)$(cpp11libdirsuffix)/$(LIBNAME): $(libdir)/$(SONAME)
+ @mkdir -p $(libdir)$(cpp11libdirsuffix)
rm -f $@
ln -s $(cpp11sonamedir)$(SONAME) $@
diff --git a/cpp/src/slice2confluence/Makefile b/cpp/src/slice2confluence/Makefile
index 5ad81d6a5e3..577af8ca124 100644
--- a/cpp/src/slice2confluence/Makefile
+++ b/cpp/src/slice2confluence/Makefile
@@ -17,7 +17,7 @@ OBJS = ConfluenceOutput.o \
Gen.o \
Main.o
-RPATH_DIR = $(LOADER_PATH)/../lib
+RPATH_DIR = $(LOADER_PATH)/../$(libsubdir)
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/slice2cpp/Makefile b/cpp/src/slice2cpp/Makefile
index fbc5f7430df..fa5112ed87f 100644
--- a/cpp/src/slice2cpp/Makefile
+++ b/cpp/src/slice2cpp/Makefile
@@ -16,7 +16,7 @@ TARGETS = $(NAME)
OBJS = Gen.o \
Main.o
-RPATH_DIR = $(LOADER_PATH)/../lib
+RPATH_DIR = $(LOADER_PATH)/../$(libsubdir)
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/slice2cs/Makefile b/cpp/src/slice2cs/Makefile
index 38ff24ad63f..0c8f1067c7c 100644
--- a/cpp/src/slice2cs/Makefile
+++ b/cpp/src/slice2cs/Makefile
@@ -16,7 +16,7 @@ TARGETS = $(NAME)
OBJS = Gen.o \
Main.o
-RPATH_DIR = $(LOADER_PATH)/../lib
+RPATH_DIR = $(LOADER_PATH)/../$(libsubdir)
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/slice2freeze/Makefile b/cpp/src/slice2freeze/Makefile
index 437127d8768..e5c304aa616 100644
--- a/cpp/src/slice2freeze/Makefile
+++ b/cpp/src/slice2freeze/Makefile
@@ -15,7 +15,7 @@ TARGETS = $(NAME)
OBJS = Main.o
-RPATH_DIR = $(LOADER_PATH)/../lib
+RPATH_DIR = $(LOADER_PATH)/../$(libsubdir)
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/slice2freezej/Makefile b/cpp/src/slice2freezej/Makefile
index a15b090fc22..706c41d6971 100644
--- a/cpp/src/slice2freezej/Makefile
+++ b/cpp/src/slice2freezej/Makefile
@@ -15,7 +15,7 @@ TARGETS = $(NAME)
OBJS = Main.o
-RPATH_DIR = $(LOADER_PATH)/../lib
+RPATH_DIR = $(LOADER_PATH)/../$(libsubdir)
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/slice2html/Makefile b/cpp/src/slice2html/Makefile
index 9e6fa3afe31..003a6a082fb 100644
--- a/cpp/src/slice2html/Makefile
+++ b/cpp/src/slice2html/Makefile
@@ -16,7 +16,7 @@ TARGETS = $(NAME)
OBJS = Gen.o \
Main.o
-RPATH_DIR = $(LOADER_PATH)/../lib
+RPATH_DIR = $(LOADER_PATH)/../$(libsubdir)
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/slice2java/Makefile b/cpp/src/slice2java/Makefile
index 80aef0db207..28412cc394d 100644
--- a/cpp/src/slice2java/Makefile
+++ b/cpp/src/slice2java/Makefile
@@ -16,7 +16,7 @@ TARGETS = $(NAME)
OBJS = Gen.o \
Main.o
-RPATH_DIR = $(LOADER_PATH)/../lib
+RPATH_DIR = $(LOADER_PATH)/../$(libsubdir)
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/slice2js/Makefile b/cpp/src/slice2js/Makefile
index 7bbac96602b..7705e3faf0d 100644
--- a/cpp/src/slice2js/Makefile
+++ b/cpp/src/slice2js/Makefile
@@ -17,7 +17,7 @@ OBJS = Gen.o \
JsUtil.o \
Main.o
-RPATH_DIR = $(LOADER_PATH)/../lib
+RPATH_DIR = $(LOADER_PATH)/../$(libsubdir)
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/slice2php/Makefile b/cpp/src/slice2php/Makefile
index fb119c74be1..c3cb3cad72d 100644
--- a/cpp/src/slice2php/Makefile
+++ b/cpp/src/slice2php/Makefile
@@ -15,7 +15,7 @@ TARGETS = $(NAME)
OBJS = Main.o
-RPATH_DIR = $(LOADER_PATH)/../lib
+RPATH_DIR = $(LOADER_PATH)/../$(libsubdir)
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/slice2py/Makefile b/cpp/src/slice2py/Makefile
index 75f8d6ebbbe..bf7e2e83d9b 100644
--- a/cpp/src/slice2py/Makefile
+++ b/cpp/src/slice2py/Makefile
@@ -15,7 +15,7 @@ TARGETS = $(NAME)
OBJS = Main.o
-RPATH_DIR = $(LOADER_PATH)/../lib
+RPATH_DIR = $(LOADER_PATH)/../$(libsubdir)
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/slice2rb/Makefile b/cpp/src/slice2rb/Makefile
index 37f39017927..080e386a6ca 100644
--- a/cpp/src/slice2rb/Makefile
+++ b/cpp/src/slice2rb/Makefile
@@ -15,7 +15,7 @@ TARGETS = $(NAME)
OBJS = Main.o
-RPATH_DIR = $(LOADER_PATH)/../lib
+RPATH_DIR = $(LOADER_PATH)/../$(libsubdir)
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/test/IceGrid/admin/Makefile b/cpp/test/IceGrid/admin/Makefile
index c396c52a61d..fffc48c6e26 100644
--- a/cpp/test/IceGrid/admin/Makefile
+++ b/cpp/test/IceGrid/admin/Makefile
@@ -19,7 +19,7 @@ include $(top_srcdir)/config/Make.rules
$(SERVER): $(OBJS)
rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
+ $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(OBJS) $(LIBS)
clean::
-rm -rf db/node db/registry db/replica-*
diff --git a/cpp/test/IceGrid/allocation/Makefile b/cpp/test/IceGrid/allocation/Makefile
index bb081093097..6eb735ec10b 100644
--- a/cpp/test/IceGrid/allocation/Makefile
+++ b/cpp/test/IceGrid/allocation/Makefile
@@ -38,15 +38,15 @@ LINKWITH := $(BZIP2_RPATH_LINK) -lIce -lIceUtil
$(CLIENT): $(COBJS)
rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(COBJS) -lIceGrid -lGlacier2 $(LIBS)
+ $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(COBJS) -lIceGrid -lGlacier2 $(LIBS)
$(SERVER): $(SOBJS)
rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(SOBJS) $(LIBS)
+ $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) $(LIBS)
$(VERIFIER): $(VOBJS)
rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(VOBJS) -lGlacier2 $(LIBS)
+ $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(VOBJS) -lGlacier2 $(LIBS)
clean::
-rm -rf db/node db/registry db/node-1 db/node-2 db/replica-*
diff --git a/cpp/test/IceGrid/noRestartUpdate/AllTests.cpp b/cpp/test/IceGrid/noRestartUpdate/AllTests.cpp
index b8b0248563a..683bc6954d9 100644
--- a/cpp/test/IceGrid/noRestartUpdate/AllTests.cpp
+++ b/cpp/test/IceGrid/noRestartUpdate/AllTests.cpp
@@ -527,7 +527,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
addProperty(service, "Ice.Warn.UnknownProperties", "0");
//addProperty(service, "Ice.Trace.Admin.Properties", "1");
service->name = "Service1";
- service->entry = "TestService:create";
+ service->entry = "./TestService:create";
adapter = AdapterDescriptor();
adapter.name = "${service}";
adapter.id = "${server}.${service}";
@@ -539,17 +539,29 @@ allTests(const Ice::CommunicatorPtr& communicator)
adapter.objects.push_back(object);
service->adapters.push_back(adapter);
+ string iceboxExe = "/icebox";
+#if defined(__linux)
+# if defined(__i386)
+ iceboxExe += "32";
+# endif
+# if defined(ICE_CPP11)
+ iceboxExe += "++11";
+# endif
+#endif
+
+#if defined(_WIN32) && !defined(NDEBUG)
+ iceboxExe += "d";
+#endif
+
IceBoxDescriptorPtr icebox = new IceBoxDescriptor();
icebox->id = "IceBox";
#if defined(__APPLE__) && defined(__i386)
icebox->exe = "arch";
icebox->options.push_back("-i386");
- icebox->options.push_back(properties->getProperty("IceBinDir") + "/icebox");
-#elif defined(NDEBUG) || !defined(_WIN32)
- icebox->exe = properties->getProperty("IceBinDir") + "/icebox";
+ icebox->options.push_back(properties->getProperty("IceBinDir") + iceboxExe;);
#else
- icebox->exe = properties->getProperty("IceBinDir") + "/iceboxd";
-#endif
+ icebox->exe = properties->getProperty("IceBinDir") + iceboxExe;
+#endif
icebox->activation = "on-demand";
icebox->applicationDistrib = false;
icebox->allocatable = false;
diff --git a/cpp/test/IceGrid/replicaGroup/AllTests.cpp b/cpp/test/IceGrid/replicaGroup/AllTests.cpp
index 51162ac6839..97d85e946d7 100644
--- a/cpp/test/IceGrid/replicaGroup/AllTests.cpp
+++ b/cpp/test/IceGrid/replicaGroup/AllTests.cpp
@@ -55,8 +55,9 @@ instantiateServer(const AdminPrx& admin, const string& templ, const string& node
catch(const NodeUnreachableException&)
{
}
- catch(const Ice::Exception&)
+ catch(const Ice::Exception& ex)
{
+ cerr << ex << endl;
test(false);
}
}
diff --git a/cpp/test/IceGrid/session/Makefile b/cpp/test/IceGrid/session/Makefile
index 33c3648b8db..92cbb969e72 100644
--- a/cpp/test/IceGrid/session/Makefile
+++ b/cpp/test/IceGrid/session/Makefile
@@ -47,7 +47,7 @@ $(VERIFIER): $(VOBJS)
$(SERVER): $(SOBJS)
rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(SOBJS) -lGlacier2 $(ICESSL_LIBS) $(LIBS)
+ $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) -lGlacier2 $(ICESSL_LIBS) $(LIBS)
clean::
-rm -rf db/node db/registry db/node-1 db/replica-*
diff --git a/cpp/test/IceGrid/update/Makefile b/cpp/test/IceGrid/update/Makefile
index 9e6bd9ea385..d900161ad44 100644
--- a/cpp/test/IceGrid/update/Makefile
+++ b/cpp/test/IceGrid/update/Makefile
@@ -40,7 +40,7 @@ $(CLIENT): $(COBJS)
$(SERVER): $(SOBJS)
rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(SOBJS) $(LIBS)
+ $(CXX) $(LDFLAGS) $(LDEXEFLAGS) -o $@ $(SOBJS) $(LIBS)
clean::
-rm -rf db/node db/registry db/node-1 db/node-2 db/replica-*
diff --git a/cs/config/Make.rules.cs b/cs/config/Make.rules.cs
index 746c1d224d7..1b936209836 100644
--- a/cs/config/Make.rules.cs
+++ b/cs/config/Make.rules.cs
@@ -163,16 +163,11 @@ ifeq ($(OPTIMIZE),yes)
endif
ifdef ice_src_dist
- ifeq ($(ice_cpp_dir), $(ice_dir)/cpp)
- SLICE2CS = $(ice_cpp_dir)/bin/slice2cs
- SLICEPARSERLIB = $(ice_cpp_dir)/lib/$(call mklibfilename,Slice,$(VERSION))
- else
- SLICE2CS = $(ice_cpp_dir)/$(binsubdir)/slice2cs
- SLICEPARSERLIB = $(ice_cpp_dir)/$(libsubdir)/$(call mklibfilename,Slice,$(VERSION))
- endif
+ SLICE2CS = $(ice_cpp_dir)/$(binsubdir)/slice2cs
+ SLICEPARSERLIB = $(ice_cpp_dir)/$(libsubdir)/$(call mklibfilename,Slice,$(VERSION))
else
- SLICE2CS = $(ice_dir)/$(binsubdir)/slice2cs
- SLICEPARSERLIB = $(ice_dir)/$(libsubdir)/$(call mklibfilename,Slice,$(VERSION))
+ SLICE2CS = $(ice_dir)/$(binsubdir)/slice2cs
+ SLICEPARSERLIB = $(ice_dir)/$(libsubdir)/$(call mklibfilename,Slice,$(VERSION))
endif
AL = al
diff --git a/demoscript/Util.py b/demoscript/Util.py
index c9c0eeb6286..baec3157398 100644
--- a/demoscript/Util.py
+++ b/demoscript/Util.py
@@ -38,6 +38,7 @@ import Expect
keepGoing = False
iceHome = None
x64 = False
+x86 = False
cpp11 = False
preferIPv4 = False
serviceDir = None
@@ -271,7 +272,6 @@ def configurePaths():
binDir = os.path.join(getIceDir("cpp"), "bin")
addenv("PATH", binDir)
- libDir = None if isWin32() else os.path.join(getIceDir("cpp"), "lib")
if iceHome:
# Add compiler sub-directory
@@ -283,30 +283,23 @@ def configurePaths():
if subdir:
binDir = os.path.join(binDir, subdir)
+ if x64:
+ binDir = os.path.join(binDir, "x64")
- if isUbuntu() and iceHome == "/usr":
- libDir = os.path.join(libDir, "x86_64-linux-gnu" if x64 else "i386-linux-gnu")
# Add x64 sub-directory
- elif x64:
- if isSolaris():
- if isSparc():
- libDir = os.path.join(libDir, "64")
- binDir = os.path.join(binDir, "sparcv9")
- else:
- libDir = os.path.join(libDir, "amd64")
- binDir = os.path.join(binDir, "amd64")
- elif isWin32():
- binDir = os.path.join(binDir, "x64")
- elif not isDarwin():
- libDir = libDir + "64"
- binDir = binDir + "64"
+ if isSolaris() and x64:
+ if isSparc():
+ binDir = os.path.join(binDir, "sparcv9")
+ else:
+ binDir = os.path.join(binDir, "amd64")
+
if binDir != os.path.join(getIceDir("cpp"), "bin"):
addenv("PATH", binDir)
#
# For OS X we don't need to set any library path for C++
#
- if libDir and not isDarwin() and iceHome != "/usr":
+ if isWin32() and libDir:
addLdPath(libDir)
if not iceHome:
@@ -315,9 +308,7 @@ def configurePaths():
#
# On Windows, C# assemblies are found thanks to the .exe.config files.
#
- if isCompactFramework():
- addenv("DEVPATH", os.path.join(getIceDir("cs"), "Assemblies", "cf"))
- elif isWin32():
+ if isWin32():
addenv("DEVPATH", os.path.join(getIceDir("cs"), "Assemblies"))
else:
addenv("MONO_PATH", os.path.join(getIceDir("cs"), "Assemblies"))
@@ -411,11 +402,6 @@ def isMono():
def isSolaris():
return sys.platform == "sunos5"
-def isNoServices():
- if not isWin32():
- return False
- return getCppCompiler() == "VC90"
-
global linuxDistribution
if os.path.isfile("/etc/issue"):
@@ -679,24 +665,20 @@ def getServiceDir():
serviceDir = "C:\\Progra~1\ZeroC\Ice-" + str(getIceVersion()) + "\\bin"
return serviceDir
+def isX86():
+ return x86
+
def getIceBox(mapping = "cpp"):
if mapping == "cpp":
- if isNoServices():
- return os.path.join(getServiceDir(), "icebox.exe")
- if isWin32() and isDebugBuild():
- return "iceboxd"
- if isLinux():
- if x86 or (iceHome == "/usr" and not x64):
- if cpp11:
- return "icebox32++11"
- else:
- return "icebox32"
- else:
- if cpp11:
- return "icebox++11"
- else:
- return "icebox"
- return "icebox"
+ iceBox = "icebox"
+ if isWin32() and isDebug():
+ iceBox += "d"
+ elif isLinux():
+ if x86:
+ iceBox += "32"
+ if cpp11:
+ iceBox += "++11"
+ return iceBox
elif mapping == "cs":
if isMono():
# Mono cannot locate icebox in the PATH. This is wrong for a demo dist.
@@ -706,34 +688,19 @@ def getIceBox(mapping = "cpp"):
assert False
def getIceBoxAdmin():
- if isNoServices():
- return os.path.join(getServiceDir(), "iceboxadmin")
- else:
- return "iceboxadmin"
+ return "iceboxadmin"
def getIceGridRegistry():
- if isNoServices():
- return os.path.join(getServiceDir(), "icegridregistry")
- else:
- return "icegridregistry"
+ return "icegridregistry"
def getIceGridNode():
- if isNoServices():
- return os.path.join(getServiceDir(), "icegridnode")
- else:
- return "icegridnode"
+ return "icegridnode"
def getIceGridAdmin():
- if isNoServices():
- return os.path.join(getServiceDir(), "icegridadmin")
- else:
- return "icegridadmin"
+ return "icegridadmin"
def getGlacier2Router():
- if isNoServices():
- return os.path.join(getServiceDir(), "glacier2router")
- else:
- return "glacier2router"
+ return "glacier2router"
def spawn(command, cwd = None, mapping = None):
tokens = command.split(' ')
@@ -815,9 +782,9 @@ def getJavaLibraryPath():
elif isDarwin():
return "-Djava.library.path=%s " % os.path.join(iceHome if iceHome else getThirdpartyHome(), "lib")
elif isRhel() or isSles():
- return "-Djava.library.path=%s " % "/usr/lib64" if x64 else "/usr/lib"
+ return "-Djava.library.path=%s " % ("/usr/lib64" if x64 else "/usr/lib")
elif isUbuntu():
- return "-Djava.library.path=%s " % "/usr/lib/x86_64-linux-gnu" if x64 else "/usr/lib/i386-linux-gnu"
+ return "-Djava.library.path=%s " % ("/usr/lib/x86_64-linux-gnu" if x64 else "/usr/lib/i386-linux-gnu")
return None
def addLdPath(libpath):
diff --git a/distribution/src/common/Make.rules b/distribution/src/common/Make.rules
index e3753ace47b..9e00a1e57bf 100644
--- a/distribution/src/common/Make.rules
+++ b/distribution/src/common/Make.rules
@@ -101,7 +101,11 @@ ifeq ($(mkshlib),)
$(error You need to define mkshlib in Make.rules.$(UNAME))
endif
-SLICEPARSERLIB = $(ice_dir)/$(libsubdir)/$(subst $(cpp11libsuffix),,$(call mklibfilename,Slice,$(VERSION)))
+
+SLICEPARSERLIB = $(ice_dir)/$(libsubdir)/$(subst $(cpp11libsuffix),,$(call mklibfilename,Slice,$(VERSION)))
+ifeq ($(wildcard $(SLICEPARSERLIB)),)
+ SLICEPARSERLIB = $(ice_dir)/$(lib64subdir)/$(subst $(cpp11libsuffix),,$(call mklibfilename,Slice,$(VERSION)))
+endif
SLICE2CPP = $(ice_dir)/$(binsubdir)/slice2cpp
SLICE2FREEZE = $(ice_dir)/$(binsubdir)/slice2freeze
@@ -146,8 +150,3 @@ clean::
rm -f $(addsuffix .cpp, $(basename $(notdir $(SLICE_SRCS))))
rm -f $(addsuffix .h, $(basename $(notdir $(SLICE_SRCS))))
endif
-
-ifneq ($(TEMPLATE_REPOSITORY),)
-clean::
- rm -fr $(TEMPLATE_REPOSITORY)
-endif
diff --git a/distribution/src/deb/debian/patches/ice-build.patch b/distribution/src/deb/debian/patches/ice-build.patch
index a4361911448..ecdfa84595e 100644
--- a/distribution/src/deb/debian/patches/ice-build.patch
+++ b/distribution/src/deb/debian/patches/ice-build.patch
@@ -76,7 +76,7 @@
@for subdir in $(SUBDIRS); \
--- a/config/Make.common.rules
+++ b/config/Make.common.rules
-@@ -82,7 +82,10 @@
+@@ -94,7 +94,10 @@
cpp11libsuffix = ++11
cpp11sonamedir = ../
binsuffix := $(binsuffix)$(cpp11libsuffix)
@@ -87,7 +87,7 @@
endif
ifneq ($(findstring MINGW,$(UNAME)),)
-@@ -137,16 +140,16 @@
+@@ -164,16 +167,16 @@
ifneq ($(shell test -f $(ICE_HOME)/$(binsubdir)/$(slice_translator) && echo 0), 0)
$(error Unable to find $(slice_translator) in $(ICE_HOME)/$(binsubdir), please verify ICE_HOME is properly configured and Ice is correctly installed.)
endif
@@ -108,7 +108,7 @@
endif
endif
-@@ -165,16 +168,16 @@
+@@ -192,16 +195,16 @@
ifneq ($(shell test -f $(ICE_HOME)/$(binsubdir)/$(slice_translator) && echo 0), 0)
$(error Unable to find $(slice_translator) in $(ICE_HOME)/$(binsubdir), please verify ICE_HOME is properly configured and Ice is correctly installed.)
endif
@@ -129,15 +129,6 @@
endif
endif
endif
-@@ -265,7 +268,7 @@
- #
- ifneq ($(ice_dir), /usr)
- ifdef ice_src_dist
-- ifeq ($(ice_cpp_dir), $(ice_dir)/cpp)
-+ ifeq ($(ice_cpp_dir), $(ice_dir)/$(cppsubdir))
- ice_lib_dir = $(ice_cpp_dir)/lib
- else
- ice_lib_dir = $(ice_cpp_dir)/$(libsubdir)
--- a/java/Makefile
+++ b/java/Makefile
@@ -16,17 +16,17 @@
@@ -162,14 +153,3 @@
test::
@python ./allTests.py
---- a/cpp/config/Make.rules
-+++ b/cpp/config/Make.rules
-@@ -17,7 +17,7 @@
- # The "root directory" for runpath embedded in executables. Can be unset
- # to avoid adding a runpath to Ice executables.
- #
--embedded_runpath_prefix ?= /opt/Ice-$(VERSION_MAJOR).$(VERSION_MINOR)
-+#embedded_runpath_prefix ?= /opt/Ice-$(VERSION_MAJOR).$(VERSION_MINOR)
-
- #
- # Define create_runpath_symlink as yes if you would like 'make install'
diff --git a/js/config/Make.rules.js b/js/config/Make.rules.js
index a830766b7d4..1fdd004a104 100644
--- a/js/config/Make.rules.js
+++ b/js/config/Make.rules.js
@@ -111,14 +111,10 @@ installmodule = if test ! -d $(1)/$(3) ; \
done;
ifdef ice_src_dist
- ifeq ($(ice_cpp_dir), $(ice_dir)/cpp)
- SLICE2JS = $(ice_cpp_dir)/bin/slice2js
- SLICEPARSERLIB = $(ice_cpp_dir)/lib/$(call mklibfilename,Slice,$(VERSION))
- else
- SLICE2JS = $(ice_cpp_dir)/$(binsubdir)/slice2js
- endif
+ SLICE2JS = $(ice_cpp_dir)/bin/slice2js
+ SLICEPARSERLIB = $(ice_cpp_dir)/$(libsubdir)/$(call mklibfilename,Slice,$(VERSION))
else
- SLICE2JS = $(ice_dir)/$(binsubdir)/slice2js
+ SLICE2JS = $(ice_dir)/$(binsubdir)/slice2js
endif
all:: $(TARGETS)
diff --git a/php/config/Make.rules.Darwin b/php/config/Make.rules.Darwin
index a7209ae0070..f3784299c1c 100644
--- a/php/config/Make.rules.Darwin
+++ b/php/config/Make.rules.Darwin
@@ -13,8 +13,4 @@
include $(top_srcdir)/../cpp/config/Make.rules.$(UNAME)
-LDPLATFORMFLAGS := ${wl}-flat_namespace ${wl}-undefined ${wl}suppress $(LDPLATFORMFLAGS)
-
-ifneq ($(prefix),/usr)
-LDPLATFORMFLAGS := -Wl,-rpath,$(prefix)/$(libsubdir) $(LDPLATFORMFLAGS)
-endif \ No newline at end of file
+LDPLATFORMFLAGS += ${wl}-flat_namespace ${wl}-undefined ${wl}suppress $(LDEXEFLAGS) \ No newline at end of file
diff --git a/php/config/Make.rules.Linux b/php/config/Make.rules.Linux
new file mode 100644
index 00000000000..38f2c4b24cc
--- /dev/null
+++ b/php/config/Make.rules.Linux
@@ -0,0 +1,16 @@
+# **********************************************************************
+#
+# Copyright (c) 2003-2014 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.
+#
+# **********************************************************************
+
+#
+# This file is included by Make.rules when uname is Linux.
+#
+
+include $(top_srcdir)/../cpp/config/Make.rules.$(UNAME)
+
+mkshlib = $(CXX) -shared $(LDFLAGS) $(LDEXEFLAGS) -o $(1) -Wl,-h,$(2) $(3) $(4) -lpthread \ No newline at end of file
diff --git a/php/config/Make.rules.php b/php/config/Make.rules.php
index 2506bdf10f4..a6c95bdf77b 100644
--- a/php/config/Make.rules.php
+++ b/php/config/Make.rules.php
@@ -15,10 +15,17 @@
prefix ?= /opt/Ice-$(VERSION)
#
-# The "root directory" for runpath embedded in executables. Can be unset
-# to avoid adding a runpath to Ice executables.
+# The "root directory" for runpath embedded in executables. Can be set
+# to change the runpath added to Ice executables. The default is
+# platform dependent.
#
-embedded_runpath_prefix ?= /opt/Ice-$(VERSION_MAJOR).$(VERSION_MINOR)
+#embedded_runpath_prefix ?= /opt/Ice-$(VERSION_MAJOR).$(VERSION_MINOR)
+
+#
+# Define embedded_runpath as no if you don't want any RPATH added to
+# the executables.
+#
+embedded_runpath ?= yes
#
# Define OPTIMIZE as yes if you want to build with optimization.
@@ -108,6 +115,12 @@ install_phpdir = $(prefix)/share/php
install_libdir = $(shell php -r "echo(ini_get('extension_dir'));")
endif
+ifdef ice_src_dist
+ RPATH_DIR = $(LOADER_PATH)/../../cpp/$(libsubdir)
+else
+ RPATH_DIR = $(ice_dir)/$(libdir)
+endif
+
#
# Platform specific definitions
#
@@ -119,14 +132,9 @@ endif
include $(configdir)/Make.rules.$(UNAME)
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_LIB_DIR = -L$(ice_cpp_dir)/$(libsubdir)
ICE_FLAGS = -I$(ice_cpp_dir)/include
-endif
-ifdef ice_bin_dist
+else
ICE_LIB_DIR = -L$(ice_dir)/lib$(lp64suffix)
ICE_FLAGS = -I$(ice_dir)/include
endif
@@ -147,15 +155,10 @@ ifeq ("$(USE_NAMESPACES)","yes")
endif
ifdef ice_src_dist
- ifeq ($(ice_cpp_dir), $(ice_dir)/cpp)
- SLICE2PHP = $(ice_cpp_dir)/bin/slice2php
- SLICEPARSERLIB = $(ice_cpp_dir)/lib/$(call mklibfilename,Slice,$(VERSION))
- else
- SLICE2PHP = $(ice_cpp_dir)/$(binsubdir)/slice2php
+ SLICE2PHP = $(ice_cpp_dir)/$(binsubdir)/slice2php
SLICEPARSERLIB = $(ice_cpp_dir)/$(libsubdir)/$(call mklibfilename,Slice,$(VERSION))
- endif
else
- SLICE2PHP = $(ice_dir)/$(binsubdir)/slice2php
+ SLICE2PHP = $(ice_dir)/$(binsubdir)/slice2php
SLICEPARSERLIB = $(ice_dir)/$(libsubdir)/$(call mklibfilename,Slice,$(VERSION))
endif
diff --git a/py/config/Make.rules b/py/config/Make.rules
index d2dc0474604..32a50c4c92c 100644
--- a/py/config/Make.rules
+++ b/py/config/Make.rules
@@ -15,10 +15,17 @@
prefix ?= /opt/Ice-$(VERSION)
#
-# The "root directory" for runpath embedded in executables. Can be unset
-# to avoid adding a runpath to Ice executables.
+# The "root directory" for runpath embedded in executables. Can be set
+# to change the runpath added to Ice executables. The default is
+# platform dependent.
#
-embedded_runpath_prefix ?= /opt/Ice-$(VERSION_MAJOR).$(VERSION_MINOR)
+#embedded_runpath_prefix ?= /opt/Ice-$(VERSION_MAJOR).$(VERSION_MINOR)
+
+#
+# Define embedded_runpath as no if you don't want any RPATH added to
+# the executables.
+#
+embedded_runpath ?= yes
#
# Define OPTIMIZE as yes if you want to build with optimization.
@@ -85,6 +92,12 @@ else
include $(top_srcdir)/../config/Make.common.rules
endif
+ifdef ice_src_dist
+ RPATH_DIR = $(LOADER_PATH)/../../cpp/$(libsubdir)
+else
+ RPATH_DIR = $(ice_dir)/$(libdir)
+endif
+
#
# Platform specific definitions
#
@@ -116,15 +129,9 @@ ifeq ($(UNAME),SunOS)
endif
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_LIB_DIR = -L$(ice_cpp_dir)/lib
+ ICE_LIB_DIR = -L$(ice_cpp_dir)/$(libsubdir)
ICE_FLAGS = -I$(ice_cpp_dir)/include
-endif
-ifdef ice_bin_dist
+else
ICE_LIB_DIR = -L$(ice_dir)/$(libsubdir)
ICE_FLAGS = -I$(ice_dir)/include
endif
@@ -140,13 +147,8 @@ SLICE2PYFLAGS = $(ICECPPFLAGS)
LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir)
ifdef ice_src_dist
- ifeq ($(ice_cpp_dir), $(ice_dir)/cpp)
- SLICE2PY = $(ice_cpp_dir)/bin/slice2py
- SLICEPARSERLIB = $(ice_cpp_dir)/lib/$(call mklibfilename,Slice,$(VERSION))
- else
- SLICE2PY = $(ice_cpp_dir)/$(binsubdir)/slice2py
+ SLICE2PY = $(ice_cpp_dir)/bin/slice2py
SLICEPARSERLIB = $(ice_cpp_dir)/$(libsubdir)/$(call mklibfilename,Slice,$(VERSION))
- endif
else
SLICE2PY = $(ice_dir)/$(binsubdir)/slice2py
SLICEPARSERLIB = $(ice_dir)/$(libsubdir)/$(call mklibfilename,Slice,$(VERSION))
@@ -188,9 +190,4 @@ all:: $(SRCS) $(TARGETS)
include $(wildcard .depend/*.d)
-ifneq ($(TEMPLATE_REPOSITORY),)
-clean::
- rm -rf $(TEMPLATE_REPOSITORY)
-endif
-
install::
diff --git a/py/config/Make.rules.Darwin b/py/config/Make.rules.Darwin
index 0299d058ea9..7a2dcfc7523 100644
--- a/py/config/Make.rules.Darwin
+++ b/py/config/Make.rules.Darwin
@@ -13,9 +13,7 @@
include $(top_srcdir)/../cpp/config/Make.rules.$(UNAME)
-ifneq ($(prefix),/usr)
-shlibldflags += -Wl,-rpath,$(prefix)/$(libsubdir)
-endif
+shlibldflags += $(LDEXEFLAGS)
mksoname = $(if $(2),lib$(1).$(2).so,lib$(1).so)
mklibname = lib$(1).so
diff --git a/py/config/Make.rules.Linux b/py/config/Make.rules.Linux
index dc7f96108b6..4243f340037 100644
--- a/py/config/Make.rules.Linux
+++ b/py/config/Make.rules.Linux
@@ -23,3 +23,5 @@ ifeq ($(CXX),g++)
endif
endif
endif
+
+mkshlib = $(CXX) -shared $(LDFLAGS) $(LDEXEFLAGS) -o $(1) -Wl,-h,$(2) $(3) $(4) -lpthread \ No newline at end of file
diff --git a/rb/config/Make.rules b/rb/config/Make.rules
index f5c59c32854..433e60e498f 100644
--- a/rb/config/Make.rules
+++ b/rb/config/Make.rules
@@ -15,10 +15,17 @@
prefix ?= /opt/Ice-$(VERSION)
#
-# The "root directory" for runpath embedded in executables. Can be unset
-# to avoid adding a runpath to Ice executables.
+# The "root directory" for runpath embedded in executables. Can be set
+# to change the runpath added to Ice executables. The default is
+# platform dependent.
#
-embedded_runpath_prefix ?= /opt/Ice-$(VERSION_MAJOR).$(VERSION_MINOR)
+#embedded_runpath_prefix ?= /opt/Ice-$(VERSION_MAJOR).$(VERSION_MINOR)
+
+#
+# Define embedded_runpath as no if you don't want any RPATH added to
+# the executables.
+#
+embedded_runpath ?= yes
#
# Define OPTIMIZE as yes if you want to build with optimization.
@@ -151,62 +158,47 @@ install_bindir = $(prefix)/$(binsubdir)
# Platform specific definitions
#
ifeq ($(shell test -f $(top_srcdir)/config/Make.rules.$(UNAME) && echo 0),0)
- configdir = $(top_srcdir)/config
+ configdir = $(top_srcdir)/config
+else
+ configdir = $(top_srcdir)/../cpp/config
+endif
+
+ifdef ice_src_dist
+ RPATH_DIR = $(LOADER_PATH)/../../cpp/$(libsubdir)
else
- configdir = $(top_srcdir)/../cpp/config
+ RPATH_DIR = $(ice_dir)/$(libdir)
endif
+
include $(configdir)/Make.rules.$(UNAME)
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
+ ICE_FLAGS = -I$(ice_cpp_dir)/include
+else
+ 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)
-endif
-
CPPFLAGS =
ICECPPFLAGS = -I$(slicedir)
SLICE2RBFLAGS = $(ICECPPFLAGS)
LDFLAGS = $(LDPLATFORMFLAGS) $(CXXFLAGS) -L$(libdir)
-ifdef ice_src_dist
- 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
- 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.
#
-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)))
+mkrblibfilename = $(subst lib,,$(call mklibfilename,$(1),$(2)))
+mkrbsoname = $(subst lib,,$(call mksoname,$(1),$(2)))
+mkrblibname = $(subst lib,,$(call mklibname,$(1)))
+
+ifdef ice_src_dist
+ SLICEPARSERLIB = $(ice_cpp_dir)/$(libsubdir)/$(call mklibfilename,Slice,$(VERSION))
+ SLICE2RB = $(ice_cpp_dir)/$(binsubdir)/$(slice_translator)
+else
+ SLICEPARSERLIB = $(ice_dir)/$(libsubdir)/$(call mklibfilename,Slice,$(VERSION))
+ SLICE2CPP = $(ice_dir)/$(binsubdir)/$(slice_translator)
endif
EVERYTHING = all depend clean install
@@ -236,9 +228,4 @@ all:: $(SRCS) $(TARGETS)
include $(wildcard .depend/*.d)
-ifneq ($(TEMPLATE_REPOSITORY),)
-clean::
- rm -fr $(TEMPLATE_REPOSITORY)
-endif
-
install::
diff --git a/rb/config/Make.rules.Darwin b/rb/config/Make.rules.Darwin
index 94202c9d4a7..ac02383bb16 100644
--- a/rb/config/Make.rules.Darwin
+++ b/rb/config/Make.rules.Darwin
@@ -18,21 +18,12 @@ $(warning ===================================================================)
include $(top_srcdir)/../cpp/config/Make.rules.$(UNAME)
-shlibldflags = $(CXXFLAGS) -L$(libdir)
-
-ifneq ($(prefix),/usr)
-shlibldflags += -Wl,-rpath,$(prefix)/$(libsubdir)
-endif
+shlibldflags = $(CXXFLAGS) -L$(libdi) $(LDEXEFLAGS)
mkrblibfilename = $(if $(2),$(1).$(2).bundle,$(1).bundle)
mkrbsoname = $(if $(2),$(1).$(2).bundle,$(1).bundle)
-
mkrblibname = $(1).bundle
RUBY_FLAGS += -Wno-unknown-pragmas
-ifneq ($(embedded_runpath_prefix),)
- mkshlib = $(CXX) -dynamic -bundle $(shlibldflags) -o $(1) $(3) $(4)
-else
- mkshlib = $(CXX) -dynamic -bundle $(shlibldflags) -o $(1) $(3) $(4)
-endif
+mkshlib = $(CXX) -dynamic -bundle $(shlibldflags) -o $(1) $(3) $(4)
diff --git a/rb/config/Make.rules.Linux b/rb/config/Make.rules.Linux
new file mode 100644
index 00000000000..fa5c68a496a
--- /dev/null
+++ b/rb/config/Make.rules.Linux
@@ -0,0 +1,15 @@
+# **********************************************************************
+#
+# Copyright (c) 2003-2014 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.
+#
+# **********************************************************************
+
+#
+# This file is included by Make.rules when uname is Linux.
+#
+include $(top_srcdir)/../cpp/config/Make.rules.$(UNAME)
+
+mkshlib = $(CXX) -shared $(LDFLAGS) $(LDEXEFLAGS) -o $(1) -Wl,-h,$(2) $(3) $(4) -lpthread \ No newline at end of file
diff --git a/scripts/TestUtil.py b/scripts/TestUtil.py
index 66c0e25f362..f7d42fbaf4c 100755
--- a/scripts/TestUtil.py
+++ b/scripts/TestUtil.py
@@ -194,15 +194,14 @@ def getThirdpartyHome():
# with the --x86 command line argument.
#
if isWin32():
- if (os.environ.get("PROCESSOR_ARCHITECTURE", "") == "AMD64" or
- os.environ.get("PROCESSOR_ARCHITEW6432", "") == "AMD64"):
+ if os.environ.get("PLATFORM", "").upper() == "X64":
x64 = True
else:
p = subprocess.Popen("uname -m", shell = True, stdout = subprocess.PIPE, stderr = subprocess.STDOUT)
if(p.wait() != 0):
print("uname failed:\n" + p.stdout.read().strip())
sys.exit(1)
- if p.stdout.readline().decode('UTF-8').strip() == "x86_64":
+ if p.stdout.readline().decode('UTF-8').strip() == "x86_64" and os.environ.get("LP64", "") != "no":
x64 = True
#
@@ -456,11 +455,19 @@ def run(tests, root = False):
if silverlight:
print("SSL is not supported with Silverlight")
sys.exit(1)
-
+ elif o == "--c++11":
+ global cpp11
+ cpp11 = True
+ elif o == "--x86":
+ global x86
+ x86 = True
+ elif o == "--x64":
+ global x64
+ x64 = True
if o in ( "--cross", "--protocol", "--host", "--debug", "--compress", "--valgrind", "--serialize", "--ipv6", \
- "--socks", "--ice-home", "--x86", "--x64", "--env", \
+ "--socks", "--ice-home", "--x86", "--x64", "--c++11", "--env", \
"--service-dir", "--appverifier", "--compact", "--silverlight", "--winrt", \
- "--server", "--mx", "--client-home", "--c++11"):
+ "--server", "--mx", "--client-home"):
arg += " " + o
if len(a) > 0:
arg += " " + a
@@ -721,35 +728,20 @@ def getIceBox():
#
lang = getDefaultMapping()
if lang == "cpp":
- iceBox = ""
+ iceBox = "icebox"
if isWin32():
- #
- # Read the build.txt file from the test directory to figure out
- # how the IceBox service was built ("debug" vs. "release") and
- # decide which icebox executable to use.
- #
- build = open(os.path.join(os.getcwd(), "build.txt"), "r")
- type = build.read().strip()
- if type == "debug":
- iceBox = os.path.join(getCppBinDir(lang), "iceboxd.exe")
- elif type == "release":
- iceBox = os.path.join(getCppBinDir(lang), "icebox.exe")
+ if isDebug():
+ iceBox += "d"
+ iceBox += ".exe"
elif isLinux():
- if x86 or (iceHome == "/usr" and not x64):
- if cpp11:
- iceBox = os.path.join(getCppBinDir(lang), "icebox32++11")
- else:
- iceBox = os.path.join(getCppBinDir(lang), "icebox32")
- else:
- if cpp11:
- iceBox = os.path.join(getCppBinDir(lang), "icebox++11")
- else:
- iceBox = os.path.join(getCppBinDir(lang), "icebox")
- else:
- iceBox = os.path.join(getCppBinDir(lang), "icebox")
+ if x86:
+ iceBox += "32"
+ if cpp11:
+ iceBox += "++11"
+ iceBox = os.path.join(getCppBinDir(lang), iceBox)
if not os.path.exists(iceBox):
- print("couldn't find icebox executable to run the test")
+ print("couldn't find icebox executable to run the test in `%s'" % iceBox)
sys.exit(0)
elif lang == "java":
iceBox = "IceBox.Server"
@@ -1061,6 +1053,7 @@ def getCommandLine(exe, config, options = ""):
output.write("-d64 ")
if not config.ipv6:
output.write("-Djava.net.preferIPv4Stack=true ")
+ print ("library path %s" % getJavaLibraryPath())
output.write(getJavaLibraryPath())
output.write(exe + " ")
elif config.lang == "py":
@@ -1162,7 +1155,12 @@ def getDefaultCollocatedFile():
return directoryToPackage() + ".Collocated"
def isDebug():
- return debug
+ #
+ # Read the build.txt file from the test directory to figure out
+ # how the IceBox service was built ("debug" vs. "release") and
+ # decide which icebox executable to use.
+ #
+ return open(os.path.join(os.getcwd(), "build.txt"), "r").read().strip() == "debug"
import Expect
@@ -1672,17 +1670,16 @@ def getCppLibDir(lang = None):
return getCppBinDir(lang)
else:
libDir = os.path.join(getIceDir("cpp"), "lib")
- if iceHome:
- if x64:
- if isSolaris():
- if isSparc():
- libDir = os.path.join(libDir, "64")
- else:
- libDir = os.path.join(libDir, "amd64")
- if isLinux() and not isUbuntu():
- libDir = libDir + "64"
- if isUbuntu() and iceHome == "/usr":
- libDir = os.path.join(libDir, "x86_64-linux-gnu" if x64 else "i386-linux-gnu")
+ if x64:
+ if isSolaris():
+ if isSparc():
+ libDir = os.path.join(libDir, "64")
+ else:
+ libDir = os.path.join(libDir, "amd64")
+ if isLinux() and not isUbuntu():
+ libDir = libDir + "64"
+ if isUbuntu():
+ libDir = os.path.join(libDir, "x86_64-linux-gnu" if x64 else "i386-linux-gnu")
return libDir
return None
@@ -1767,7 +1764,7 @@ def getTestEnv(lang, testdir):
addPathToEnv("NODE_PATH", os.path.join(testdir), env)
return env # That's it, we're done!
- if not isDarwin() and iceHome != "/usr":
+ if isWin32():
addLdPath(getCppLibDir(), env)
if lang == "javae":
@@ -2033,8 +2030,6 @@ def processCmdLine():
elif isLinux():
iceHome = "/usr"
- if not x64:
- x64 = isWin32() and os.environ.get("PLATFORM", "").upper() == "X64" or os.environ.get("LP64", "") == "yes"
if iceHome:
sys.stdout.write("*** using Ice installation from " + iceHome + " ")
else:
@@ -2150,6 +2145,14 @@ def runTests(start, expanded, num = 0, script = False):
if isVC100() and "novc100" in config:
print("%s*** test not supported with VC++ 10.0%s" % (prefix, suffix))
continue
+
+ if cpp11 and "noc++11" in config:
+ print("%s*** test not supported with C++11%s" % (prefix, suffix))
+ continue
+
+ if x86 and iceHome and "nomultiarch" in config:
+ print("%s*** test not supported with x86 in multiarch%s" % (prefix, suffix))
+ continue
if isMINGW() and "nomingw" in config:
print("%s*** test not supported with MINGW%s" % (prefix, suffix))