]> git.donarmstrong.com Git - debhelper.git/blobdiff - dh_shlibdeps
Merge branch 'master' into buildsystems
[debhelper.git] / dh_shlibdeps
index cfbfa2def78ae84687f5c8723b380b1f392ec91b..3ab89818d3614a9c15aa69ce5ab48d0d6d2a012a 100755 (executable)
@@ -55,10 +55,11 @@ path.
 =item B<-L>I<package>, B<--libpackage=>I<package>
 
 With recent versions of dpkg-shlibdeps, this option is generally not
-needed.
+needed, unless your package builds multiple flavors of the same library.
 
-Tell dpkg-shlibdeps to use the shlibs file automatically generated by
-dh_makeshlibs for the named package instead of the shlibs.local file.
+It tells dpkg-shlibdeps (via its -S parameter) to look first in the package
+build directory for the specified package, when searching for libraries,
+symbol files, and shlibs files.
 
 =back
 
@@ -76,9 +77,19 @@ libfoo1, and using that file and the libfoo1 library in the
 debian/libfoo1/usr/lib directory to calculate shared library dependency
 information.
 
+If a libbar1 package is also produced, that is an alternate build of
+libfoo, and is installed into /usr/lib/bar/, you can make libfoo-bin depend
+on libbar1 as follows:
+
+       dh_shlibdeps -Llibbar1 -l/usr/lib/bar
+       
 =cut
 
-init();
+init(options => {
+       "L|libpackage=s" => \$dh{LIBPACKAGE},
+       "dpkg-shlibdeps-params=s", => \$dh{U_PARAMS},
+       "l=s", => \$dh{L_PARAMS},
+});
 
 if ($dh{L_PARAMS}) {
        my @paths=();
@@ -110,7 +121,9 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
        if (defined($dh{EXCLUDE_FIND}) && $dh{EXCLUDE_FIND} ne '') {
                $find_options="! \\( $dh{EXCLUDE_FIND} \\)";
        }
-       foreach my $file (split(/\n/,`find $tmp -path $tmp/usr/lib/debug -prune -or -type f \\( -perm +111 -or -name "*.so*" \\) $find_options -print`)) {
+       foreach my $file (split(/\n/,`find $tmp -type f \\( -perm +111 -or -name "*.so*" -or -name "*.cmxs" \\) $find_options -print`)) {
+               # Prune directories that contain separated debug symbols.
+               next if $file=~m!^\Q$tmp\E/usr/lib/debug/(lib|lib64|usr|bin|sbin|opt|dev|emul)/!;
                # TODO this is slow, optimize. Ie, file can run once on
                # multiple files..
                $ff=`file "$file"`;
@@ -122,7 +135,7 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
        if (@filelist) {
                my @opts;
                if (defined $dh{LIBPACKAGE} && length $dh{LIBPACKAGE}) {
-                       @opts=("-L".tmpdir($dh{LIBPACKAGE}."/DEBIAN/shlibs"));
+                       @opts=("-S".tmpdir($dh{LIBPACKAGE}));
                }
                
                push @opts, "-tudeb" if is_udeb($package);