e99de7
e99de7
Fix the way libtool is used to match standard practice:
e99de7
e99de7
a) link ONLY libraries using -rpath $(libdir), not executables
e99de7
   .. this avoids adding an RPATH for $libdir to executables
e99de7
b) link non-installable test binaries using -no-install
e99de7
   .. only for convenience but should speed up builds slightly(?)
e99de7
e99de7
--- subversion-1.12.0/build.conf.linking
e99de7
+++ subversion-1.12.0/build.conf
e99de7
@@ -572,7 +572,7 @@
e99de7
 path = subversion/bindings/swig/python/libsvn_swig_py
e99de7
 libs = libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_subr
e99de7
        apriconv apr python swig
e99de7
-link-cmd = $(LINK)
e99de7
+link-cmd = $(LINK_LIB)
e99de7
 install = swig-py-lib
e99de7
 # need special build rule to include -DSWIGPYTHON
e99de7
 compile-cmd = $(COMPILE_SWIG_PY)
e99de7
@@ -598,7 +598,7 @@
e99de7
 lang = ruby
e99de7
 path = subversion/bindings/swig/ruby/libsvn_swig_ruby
e99de7
 libs = libsvn_client libsvn_wc libsvn_delta libsvn_subr apriconv apr ruby swig
e99de7
-link-cmd = $(LINK) $(SWIG_RB_LIBS)
e99de7
+link-cmd = $(LINK_LIB) $(SWIG_RB_LIBS)
e99de7
 install = swig-rb-lib
e99de7
 # need special build rule to include
e99de7
 compile-cmd = $(COMPILE_SWIG_RB)
e99de7
@@ -769,6 +769,7 @@
e99de7
 libs = libsvn_repos libsvn_fs libsvn_delta libsvn_subr aprutil apriconv apr
e99de7
 msvc-static = yes
e99de7
 undefined-lib-symbols = yes
e99de7
+link-cmd = $(LINK_TEST_LIB)
e99de7
 
e99de7
 # ----------------------------------------------------------------------------
e99de7
 # Tests for libsvn_fs_base
e99de7
--- subversion-1.12.0/build/generator/gen_base.py.linking
e99de7
+++ subversion-1.12.0/build/generator/gen_base.py
e99de7
@@ -599,7 +599,7 @@
e99de7
     self.install = options.get('install')
e99de7
     self.compile_cmd = options.get('compile-cmd')
e99de7
     self.sources = options.get('sources', '*.c *.cpp')
e99de7
-    self.link_cmd = options.get('link-cmd', '$(LINK)')
e99de7
+    self.link_cmd = options.get('link-cmd', '$(LINK_LIB)')
e99de7
 
e99de7
     self.external_lib = options.get('external-lib')
e99de7
     self.external_project = options.get('external-project')
e99de7
@@ -659,6 +659,14 @@
e99de7
 
e99de7
     self.msvc_force_static = options.get('msvc-force-static') == 'yes'
e99de7
 
e99de7
+    if self.install in ['test', 'bdb-test', 'sub-test', ]:
e99de7
+      self.link_cmd = '$(LINK_TEST)'
e99de7
+    elif self.install in ['bin', 'tools']:
e99de7
+      self.link_cmd = '$(LINK_EXE)'
e99de7
+    elif self.link_cmd == '$(LINK_LIB)':
e99de7
+      raise GenError('ERROR: Unknown executable link type for ' + self.name + \
e99de7
+                     ': ' + self.link_cmd + ' (' + self.install + ')')
e99de7
+    
e99de7
   def add_dependencies(self):
e99de7
     TargetLinked.add_dependencies(self)
e99de7
 
e99de7
--- subversion-1.12.0/Makefile.in.linking
e99de7
+++ subversion-1.12.0/Makefile.in
e99de7
@@ -268,11 +268,14 @@
e99de7
 COMPILE_SVNXX = $(LT_COMPILE_CXX) $(SVNXX_INCLUDES) -o $@ -c
e99de7
 COMPILE_SVNXX_TEST = $(LT_COMPILE_CXX) $(SVNXX_INCLUDES) $(BOOST_TEST_CPPFLAGS) -o $@ -c
e99de7
 
e99de7
-LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(libdir)
e99de7
-LINK_LIB = $(LINK) $(LT_SO_VERSION)
e99de7
-LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS) -rpath $(libdir)
e99de7
-LINK_CXX_LIB = $(LINK_CXX) $(LT_SO_VERSION)
e99de7
-LINK_SVNXX_TEST = $(LINK_CXX) $(BOOST_TEST_LDFLAGS)
e99de7
+LINK = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS)
e99de7
+LINK_LIB = $(LINK) $(LT_SO_VERSION) -rpath $(libdir)
e99de7
+LINK_CXX = $(LIBTOOL) $(LTCXXFLAGS) --mode=link $(CXX) $(LT_LDFLAGS) $(CXXFLAGS) $(LDFLAGS)
e99de7
+LINK_CXX_LIB = $(LINK_CXX) $(LT_SO_VERSION) -rpath $(libdir)
e99de7
+LINK_SVNXX_TEST = $(LINK_CXX) $(BOOST_TEST_LDFLAGS) -no-install
e99de7
+LINK_TEST = $(LINK) -no-install
e99de7
+LINK_TEST_LIB = $(LINK_TEST) -avoid-version
e99de7
+LINK_EXE = $(LINK)
e99de7
 
e99de7
 # special link rule for mod_dav_svn
e99de7
 LINK_APACHE_MOD = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(CFLAGS) $(LDFLAGS) -rpath $(APACHE_LIBEXECDIR) -avoid-version -module $(APACHE_LDFLAGS) -shared