Add --enable-rpath option to add -Wl,-rpath to pkg-config files.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sun, 10 Nov 2013 08:02:51 +0000 (09:02 +0100)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sat, 23 Nov 2013 08:57:38 +0000 (09:57 +0100)
This allows installing into e.g. /usr/lib/ffmpeg and binaries linked
against ffmpeg will pick these .so file while binaries linked against
some fork or different version will pick the libraries in /usr/lib.
There will be still some issues for binaries that (indirectly) end up
depending on multiple variants, but for the simpler cases it should allow
different applications to use different (compatible) variants that
are installed at the same time.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
configure

index b2161e1..e4eb01c 100755 (executable)
--- a/configure
+++ b/configure
@@ -87,6 +87,8 @@ Standard options:
   --shlibdir=DIR           install shared libs in DIR [PREFIX/lib]
   --incdir=DIR             install includes in DIR [PREFIX/include]
   --mandir=DIR             install man page in DIR [PREFIX/share/man]
+  --enable-rpath           use rpath to allow installing libraries in paths
+                           not part of the dynamic linker search path
 
 Licensing options:
   --enable-gpl             allow use of GPL code, the resulting libs
@@ -1612,6 +1614,7 @@ CMDLINE_SELECT="
     logging
     lto
     optimizations
+    rpath
     stripping
 "
 
@@ -4468,6 +4471,7 @@ check_disable_warning -Wno-pointer-sign
 # add some linker flags
 check_ldflags -Wl,--warn-common
 check_ldflags -Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample
+enabled rpath && add_ldflags -Wl,-rpath=$libdir
 test_ldflags -Wl,-Bsymbolic && append SHFLAGS -Wl,-Bsymbolic
 
 enabled xmm_clobber_test &&
@@ -4980,7 +4984,7 @@ Version: $version
 Requires: $(enabled shared || echo $requires)
 Requires.private: $(enabled shared && echo $requires)
 Conflicts:
-Libs: -L\${libdir} -l${shortname} $(enabled shared || echo $libs)
+Libs: -L\${libdir} $(enabled rpath && echo "-Wl,-rpath,\${libdir}") -l${shortname} $(enabled shared || echo $libs)
 Libs.private: $(enabled shared && echo $libs)
 Cflags: -I\${includedir}
 EOF