From 4e2835850dfa4d869e470017d921f4d36293b111 Mon Sep 17 00:00:00 2001 From: Pavel Charvat Date: Thu, 22 May 2014 09:18:45 +0200 Subject: [PATCH] Build: Added link path to libraries installed to non-standard path. --- charset/libucw-charset.pc | 2 +- images/libucw-images.pc | 2 +- ucw/libucw.pc | 2 +- ucw/perl/UCW/Configure/C.pm | 11 +++++++++++ xml/libucw-xml.pc | 2 +- 5 files changed, 15 insertions(+), 4 deletions(-) diff --git a/charset/libucw-charset.pc b/charset/libucw-charset.pc index 1795258e..211959b0 100644 --- a/charset/libucw-charset.pc +++ b/charset/libucw-charset.pc @@ -10,5 +10,5 @@ Name: libucw-charset Description: Character set conversion library Version: @UCW_VERSION@ Cflags: -I${incdir} -Libs: -L${libdir} -lucw-charset@UCW_ABI_SUFFIX@${picsuffix} +Libs: -L${libdir} @SO_LINK_PATH@ -lucw-charset@UCW_ABI_SUFFIX@${picsuffix} Requires.private: @DEPS@ diff --git a/images/libucw-images.pc b/images/libucw-images.pc index 7f24b3c0..6496ac8f 100644 --- a/images/libucw-images.pc +++ b/images/libucw-images.pc @@ -10,6 +10,6 @@ Name: libucw-images Description: UCW image library Version: @UCW_VERSION@ Cflags: -I${incdir} -Libs: -L${libdir} -lucw-images@UCW_ABI_SUFFIX@${picsuffix} +Libs: -L${libdir} @SO_LINK_PATH@ -lucw-images@UCW_ABI_SUFFIX@${picsuffix} Libs.private: @LIBIMAGES_LIBS@ Requires.private: @DEPS@ diff --git a/ucw/libucw.pc b/ucw/libucw.pc index 546dcb0d..283c89cc 100644 --- a/ucw/libucw.pc +++ b/ucw/libucw.pc @@ -14,5 +14,5 @@ Name: libucw Description: A library of utility functions and data structures Version: @UCW_VERSION@ Cflags: -I${incdir} -Libs: -L${libdir} -lucw@UCW_ABI_SUFFIX@${picsuffix} +Libs: -L${libdir} @SO_LINK_PATH@ -lucw@UCW_ABI_SUFFIX@${picsuffix} Libs.private: @LIBUCW_LIBS@ diff --git a/ucw/perl/UCW/Configure/C.pm b/ucw/perl/UCW/Configure/C.pm index 88a8570b..8af97830 100644 --- a/ucw/perl/UCW/Configure/C.pm +++ b/ucw/perl/UCW/Configure/C.pm @@ -119,12 +119,23 @@ Set("LIBS" => ""); # Extra flags for compiling and linking shared libraries Set("CSHARED" => '-fPIC'); +Set("SO_LINK_PATH" => ''); if (IsSet("CONFIG_LOCAL")) { Set("SONAME_PREFIX" => "lib/"); Append("LOPT" => "-Wl,--rpath-link -Wl,run"); } else { Set("SONAME_PREFIX" => ""); Append("LOPT" => "-Wl,--rpath-link -Wl,run/lib"); + if (IsSet("CONFIG_SHARED") && !(Get("INSTALL_LIB_DIR") eq "/usr/lib")) { + Set("SO_LINK_PATH" => "-Wl,--rpath " . Get("INSTALL_LIB_DIR")); + AtWrite { + # FIXME: This is a hack. GCC would otherwise fail to link binaries. + my $libdir = Get("INSTALL_LIB_DIR"); + if (!(-d $libdir)) { + `install -d -m 755 $libdir`; Fail("Cannot create $libdir") if $?; + } + }; + } } if (IsSet("CONFIG_DARWIN")) { Set("LSHARED" => '-dynamiclib -install_name $(SONAME_PREFIX)$(@F)$(SONAME_SUFFIX) -undefined dynamic_lookup'); diff --git a/xml/libucw-xml.pc b/xml/libucw-xml.pc index 908328de..c127311d 100644 --- a/xml/libucw-xml.pc +++ b/xml/libucw-xml.pc @@ -10,5 +10,5 @@ Name: libucw-xml Description: XML parser for LibUCW project Version: @UCW_VERSION@ Cflags: -I${incdir} -Libs: -L${libdir} -lucw-xml@UCW_ABI_SUFFIX@${picsuffix} +Libs: -L${libdir} @SO_LINK_PATH@ -lucw-xml@UCW_ABI_SUFFIX@${picsuffix} Requires.private: @DEPS@ -- 2.39.2