Fix pkg-config files to avoid overlinking
authorUlrich Klauer <ulrich@chirlu.de>
Sat, 6 Apr 2013 18:41:12 +0000 (20:41 +0200)
committerErik de Castro Lopo <erikd@mega-nerd.com>
Sun, 7 Apr 2013 01:03:52 +0000 (11:03 +1000)
Libraries that are used internally by libFLAC(++) but are not part of
their API should be listed in pkg-config "private" clauses. Otherwise
executables that are linked dynamically against libFLAC(++) will have
unneeded direct dependencies (overlinking).

Based on a patch by Brad Smith from
  https://sourceforge.net/p/flac/bugs/397/
that I updated to only include ogg if libFLAC is actually built with
ogg support.

Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
configure.ac
src/libFLAC++/flac++.pc.in
src/libFLAC/flac.pc.in

index b35e44d..b4094ff 100644 (file)
@@ -308,9 +308,11 @@ fi
 AM_CONDITIONAL(FLaC__HAS_OGG, [test "x$have_ogg" = xyes])
 if test "x$have_ogg" = xyes ; then
        AC_DEFINE_UNQUOTED([FLAC__HAS_OGG],1,[define if you have the ogg library])
+       OGG_PACKAGE="ogg"
 else
        AC_DEFINE_UNQUOTED([FLAC__HAS_OGG],0)
 fi
+AC_SUBST(OGG_PACKAGE)
 
 dnl check for i18n(internationalization); these are from libiconv/gettext
 AM_ICONV
index 8f55499..242998d 100644 (file)
@@ -6,6 +6,6 @@ includedir=@includedir@
 Name: FLAC++
 Description: Free Lossless Audio Codec Library (C++ API)
 Version: @VERSION@
-Requires: flac
-Libs: -L${libdir} -lFLAC++ @OGG_LIBS@ -lm
+Requires.private: flac
+Libs: -L${libdir} -lFLAC++
 Cflags: -I${includedir}
index 5f9be59..56e8594 100644 (file)
@@ -6,5 +6,7 @@ includedir=@includedir@
 Name: FLAC
 Description: Free Lossless Audio Codec Library
 Version: @VERSION@
-Libs: -L${libdir} -lFLAC @OGG_LIBS@ -lm
+Requires.private: @OGG_PACKAGE@
+Libs: -L${libdir} -lFLAC
+Libs.private: -lm
 Cflags: -I${includedir}