]> git.donarmstrong.com Git - debhelper.git/blobdiff - dh_shlibdeps
r374: * Rebuild to remove cvs junk, Closes: #72610
[debhelper.git] / dh_shlibdeps
index e30c4a5b34d4693f879c758c943934b968be502d..237d92db5a0dbb648fd1e7819dc86df1ce6643f1 100755 (executable)
@@ -1,24 +1,38 @@
-#!/bin/sh -e
+#!/usr/bin/perl -w
 #
 # Find dependancies. Simple dpkg-shlibdeps wrapper.
 
-PATH=debian:$PATH:/usr/lib/debhelper
-. dh_lib
+use Debian::Debhelper::Dh_Lib;
+init();
 
-for PACKAGE in $DH_DOPACKAGES; do
-       TMP=`tmpdir $PACKAGE`
-       EXT=`pkgext $PACKAGE`
+foreach $PACKAGE (@{$dh{DOPACKAGES}}) {
+       $TMP=tmpdir($PACKAGE);
+       $EXT=pkgext($PACKAGE);
 
-       # Run dpkg-shlibdeps to generate dependancies.
-       filelist=""
-       for file in `find $TMP -type f \( -perm +111 -or -name "*.so*" \) | tr "\n" " "` ; do
-               case "`file $file`" in
-                       *ELF*)
-                               filelist="$file $filelist"
-                       ;;
-               esac
-       done
-       if [ "$filelist" ]; then
-               doit "dpkg-shlibdeps -Tdebian/${EXT}substvars $DH_U_PARAMS $filelist"
-       fi
-done
+       my @filelist;
+       my $ff;
+
+       # Generate a list of ELF binaries in the package, ignoring any
+       # we were told to exclude.
+       if (! defined($dh{EXCLUDE_FIND}) || $dh{EXCLUDE_FIND} eq '') {
+               $find_options="";
+       }
+       else {
+               $find_options="! \\( $dh{EXCLUDE_FIND} \\)";
+       }
+       foreach $file (split(/\n/,`find $TMP -type f \\( -perm +111 -or -name "*.so*" \\) $find_options`)) {
+               # TODO: this is slow, optimize. Ie, file can run once on multiple files..
+               $ff=`file "$file"`;
+               if ($ff=~m/ELF/ && $ff!~/statically linked/) {
+                       push @filelist,$file;
+               }
+       }
+
+       if (@filelist) {
+               if ($dh{L_PARAMS}) {
+                       $ENV{'LD_LIBRARY_PATH'}=$dh{L_PARAMS};
+                       verbose_print("LD_LIBRARY_PATH=$dh{L_PARAMS} \\");
+               }
+               doit("dpkg-shlibdeps","-Tdebian/${EXT}substvars",@{$dh{U_PARAMS}},'-dDepends',@filelist);
+       }
+}