summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2014-11-21 00:25:58 +0100
committerJose <jose@zeroc.com>2014-11-21 00:25:58 +0100
commitd91c43b27167233345d78255908fec24fb1d71af (patch)
treebbe89eff20f712d7badbbc81b8339c66ccef911b /cpp
parentDistUtil typo (diff)
downloadice-d91c43b27167233345d78255908fec24fb1d71af.tar.bz2
ice-d91c43b27167233345d78255908fec24fb1d71af.tar.xz
ice-d91c43b27167233345d78255908fec24fb1d71af.zip
More updates for ICE-5931, ICE-5935
Diffstat (limited to 'cpp')
-rw-r--r--cpp/config/Make.rules14
-rw-r--r--cpp/config/Make.rules.Darwin16
-rw-r--r--cpp/config/Make.rules.Linux31
-rw-r--r--cpp/src/FreezeScript/Makefile2
-rw-r--r--cpp/src/Glacier2/Makefile2
-rw-r--r--cpp/src/IceBox/Makefile2
-rw-r--r--cpp/src/IceGrid/Makefile2
-rw-r--r--cpp/src/IcePatch2/Makefile2
-rw-r--r--cpp/src/IceStorm/Makefile2
-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/Freeze/dbmap/Makefile2
-rwxr-xr-xcpp/test/Slice/errorDetection/run.py1
22 files changed, 73 insertions, 25 deletions
diff --git a/cpp/config/Make.rules b/cpp/config/Make.rules
index ebb87fc17ce..915d28b729c 100644
--- a/cpp/config/Make.rules
+++ b/cpp/config/Make.rules
@@ -20,6 +20,20 @@ prefix ?= /opt/Ice-$(VERSION)
#OPTIMIZE = yes
#
+# 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)
+
+#
+# Define create_runpath_symlink as yes if you would like 'make install'
+# to automatically create a symbolic link for the embedded runpath
+# directory. Only applies if embedded_runpath_prefix is also set.
+#
+create_runpath_symlink ?= 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
diff --git a/cpp/config/Make.rules.Darwin b/cpp/config/Make.rules.Darwin
index baafa004a4d..802a78d7dcc 100644
--- a/cpp/config/Make.rules.Darwin
+++ b/cpp/config/Make.rules.Darwin
@@ -43,6 +43,15 @@ endif
#
CXXLIBS =
+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)
@@ -51,6 +60,13 @@ RPATH_DIR = $(ice_dir)/$(libsubdir)
endif
endif
+#
+# Clear rpath setting when doing a system install
+#
+ifeq ($(ice_dir),/usr)
+RPATH_DIR =
+endif
+
ifneq ($(RPATH_DIR),)
LDEXEFLAGS = -Wl,-rpath,$(RPATH_DIR)
endif
diff --git a/cpp/config/Make.rules.Linux b/cpp/config/Make.rules.Linux
index ccee5486940..ef24cff950a 100644
--- a/cpp/config/Make.rules.Linux
+++ b/cpp/config/Make.rules.Linux
@@ -90,6 +90,31 @@ ifeq ($(CXX),g++)
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
+
+ #
+ # Clear the rpath dir when doing a system install.
+ #
+ ifeq ($(ice_dir), /usr)
+ RPATH_DIR =
+ endif
+
+ ifneq ($(RPATH_DIR),)
+ LDEXEFLAGS = -Wl,-rpath,$(RPATH_DIR)
+ endif
#
# C++ run-time libraries, necessary for linking some shared libraries.
@@ -102,12 +127,6 @@ ifeq ($(CXX),g++)
rpathlink = -Wl,-rpath-link,$(1)
- ifneq ($(embedded_runpath_prefix),)
- LDPLATFORMFLAGS = -Wl,--enable-new-dtags -Wl,-rpath,$(runpath_libdir)
- else
- LDPLATFORMFLAGS = -Wl,--enable-new-dtags
- endif
-
LDPLATFORMFLAGS += -rdynamic
endif
diff --git a/cpp/src/FreezeScript/Makefile b/cpp/src/FreezeScript/Makefile
index aa54d63ad78..04d83e89767 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)/../lib
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/Glacier2/Makefile b/cpp/src/Glacier2/Makefile
index bd6df67448d..1f0de439f88 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)/../lib
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/IceBox/Makefile b/cpp/src/IceBox/Makefile
index 791bbed83bc..7eab34ce886 100644
--- a/cpp/src/IceBox/Makefile
+++ b/cpp/src/IceBox/Makefile
@@ -36,7 +36,7 @@ OBJS = $(LIB_OBJS) \
HDIR = $(headerdir)/IceBox
SDIR = $(slicedir)/IceBox
-RPATH_DIR = @loader_path/../lib
+RPATH_DIR = $(LOADER_PATH)/../lib
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/IceGrid/Makefile b/cpp/src/IceGrid/Makefile
index efb2d4397b9..7ff86f06937 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)/../lib
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/IcePatch2/Makefile b/cpp/src/IcePatch2/Makefile
index 3d90ffd2bfb..0f98285f0a2 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)/../lib
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/IceStorm/Makefile b/cpp/src/IceStorm/Makefile
index c2e13f23f8c..03f056c7f18 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)/../lib
SLICE2FREEZECMD = $(SLICE2FREEZE) -I../.. --ice --include-dir IceStorm $(ICECPPFLAGS)
diff --git a/cpp/src/slice2confluence/Makefile b/cpp/src/slice2confluence/Makefile
index 832031d87ef..5ad81d6a5e3 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)/../lib
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/slice2cpp/Makefile b/cpp/src/slice2cpp/Makefile
index 540c8609532..fbc5f7430df 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)/../lib
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/slice2cs/Makefile b/cpp/src/slice2cs/Makefile
index ed26cb5615c..38ff24ad63f 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)/../lib
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/slice2freeze/Makefile b/cpp/src/slice2freeze/Makefile
index 938b75b50f2..437127d8768 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)/../lib
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/slice2freezej/Makefile b/cpp/src/slice2freezej/Makefile
index 75709f97478..a15b090fc22 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)/../lib
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/slice2html/Makefile b/cpp/src/slice2html/Makefile
index 91daaa61089..9e6fa3afe31 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)/../lib
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/slice2java/Makefile b/cpp/src/slice2java/Makefile
index a70c830417a..80aef0db207 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)/../lib
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/slice2js/Makefile b/cpp/src/slice2js/Makefile
index 63053c3a533..7bbac96602b 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)/../lib
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/slice2php/Makefile b/cpp/src/slice2php/Makefile
index f2a7e6cb7a3..fb119c74be1 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)/../lib
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/slice2py/Makefile b/cpp/src/slice2py/Makefile
index 3f003a08cbe..75f8d6ebbbe 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)/../lib
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/src/slice2rb/Makefile b/cpp/src/slice2rb/Makefile
index b8029ca3a86..37f39017927 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)/../lib
include $(top_srcdir)/config/Make.rules
diff --git a/cpp/test/Freeze/dbmap/Makefile b/cpp/test/Freeze/dbmap/Makefile
index 71c8e5f93e9..82c1387fbd7 100644
--- a/cpp/test/Freeze/dbmap/Makefile
+++ b/cpp/test/Freeze/dbmap/Makefile
@@ -30,7 +30,7 @@ CPPFLAGS := -I. -I../../include $(CPPFLAGS)
$(CLIENT): $(OBJS)
rm -f $@
- $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(DB_RPATH_LINK) -lFreeze $(LIBS)
+ $(CXX) $(LDFLAGS) $(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/test/Slice/errorDetection/run.py b/cpp/test/Slice/errorDetection/run.py
index 4f5e1d40d55..054340edeaa 100755
--- a/cpp/test/Slice/errorDetection/run.py
+++ b/cpp/test/Slice/errorDetection/run.py
@@ -39,7 +39,6 @@ for file in files:
command = slice2cpp + ' --underscore -I. "%s"' % os.path.join(os.getcwd(), file)
else:
command = slice2cpp + ' -I. "%s"' % os.path.join(os.getcwd(), file)
-
p = TestUtil.runCommand(command)
(stdin, stdout, stderr) = (p.stdin, p.stdout, p.stderr)