summaryrefslogtreecommitdiff
path: root/dh_shlibdeps
diff options
context:
space:
mode:
authorunknown <unknown>2003-07-28 18:43:17 +0000
committerunknown <unknown>2003-07-28 18:43:17 +0000
commite5474c83813a7795bb9ee043f65fcf57167039f7 (patch)
tree47c37051ccc443d59968a2acd5d86a53b3c4a6b0 /dh_shlibdeps
parentd579dae0cf159c50dcd902ff4a35590f7dcff395 (diff)
parent63e45075003b1d9fcff097b5644a81131c346653 (diff)
downloaddebhelper-version_2.0.22.tar.gz
r621: This commit was manufactured by cvs2svn to create tag 'rel-2-0-22'.version_2.0.22
Diffstat (limited to 'dh_shlibdeps')
-rwxr-xr-xdh_shlibdeps145
1 files changed, 0 insertions, 145 deletions
diff --git a/dh_shlibdeps b/dh_shlibdeps
deleted file mode 100755
index 3fae6a66..00000000
--- a/dh_shlibdeps
+++ /dev/null
@@ -1,145 +0,0 @@
-#!/usr/bin/perl -w
-
-=head1 NAME
-
-dh_shlibdeps - calculate shared library dependancies
-
-=cut
-
-use strict;
-use Cwd;
-use Debian::Debhelper::Dh_Lib;
-
-=head1 SYNOPSIS
-
-B<dh_shlibdeps> [S<I<debhelper options>>] [B<-L>I<package>] [B<-l>I<directory>] [B<-X>I<item>] [S<B<--> I<params>>]
-
-=head1 DESCRIPTION
-
-dh_shlibdeps is a debhelper program that is responsible for calculating
-shared library dependancies for packages.
-
-This program is merely a wrapper around L<dpkg-shlibdeps(1)> that calls it
-once for each package listed in the control file, passing it
-a list of ELF executables and shared libraries it has found.
-
-=head1 OPTIONS
-
-=over 4
-
-=item B<-u>I<params>, B<--dpkg-shlibdeps-params=>I<params>
-
-=item B<--> I<params>
-
-Pass "params" to L<dpkg-shlibdeps(1)>.
-
-=item B<-X>I<item>, B<--exclude=>I<item>
-
-Exclude files that contain "item" anywhere in their filename from being
-passed to dpkg-shlibdeps. This will make their dependancies be ignored.
-This may be useful in some situations, but use it with caution. This option
-may be used more than once to exclude more than one thing.
-
-=item B<-l>I<directory>[:directory:directory:..]
-
-Before dpkg-shlibdeps is run, LD_LIBRARY_PATH will have added to it the
-specified directory (or directories -- separate with colons). This is
-useful for multi-binary packages where a library is built in one
-package and another package contains binaries linked against said
-library. Relative paths will be made absolute for the benefit of
-dpkg-shlibdeps.
-
-Note that the directory given should be the complete or relative path to
-a directory that contains the library. See example below.
-
-=item B<-L>I<package>, B<--libpackage=>I<package>
-
-Use the shlibs file automatically generated by dh_makeshlibs for the named
-package as a kind of automatically generated shlibs.local file. You can us
-this switch in concert with the -l switch to make dpkg-shlibdeps find a
-library built as part of the current package, and get the shlibs information.
-See example below.
-
-=back
-
-=head1 EXAMPLES
-
-Suppose that your source package produces libfoo1, libfoo-dev, and
-libfoo-bin binary packages. libfoo-bin links against libfoo1, and should
-depend on it. In your rules file, first run dh_makeshlibs, then dh_shlibdeps:
-
- dh_makeshlibs
- dh_shlibdeps -L libfoo1 -l debian/libfoo1/usr/lib
-
-This will have the effect of generating automatically a shlibs file for
-libfoo1, and using that file and the libfoo1 library in the
-debian/libfoo1/usr/lib directory to calculate shared library dependency
-information.
-
-=cut
-
-init();
-
-# Add directory to library search path.
-if ($dh{L_PARAMS}) {
- my @paths=();
- # Add to existing paths, if set.
- push @paths, $ENV{'LD_LIBRARY_PATH'}
- if exists $ENV{'LD_LIBRARY_PATH'};
- foreach (split(/:/, $dh{L_PARAMS})) {
- # Force the path absolute.
- if (m:^/:) {
- push @paths, $_;
- }
- else {
- push @paths, getcwd()."/$_";
- }
- }
- $dh{L_PARAMS}=join(':', @paths);
- $ENV{'LD_LIBRARY_PATH'}=$dh{L_PARAMS};
- verbose_print("LD_LIBRARY_PATH=$dh{L_PARAMS}");
-}
-
-foreach my $package (@{$dh{DOPACKAGES}}) {
- my $tmp=tmpdir($package);
- my $ext=pkgext($package);
-
- my @filelist;
- my $ff;
-
- # Generate a list of ELF binaries in the package, ignoring any
- # we were told to exclude.
- my $find_options='';
- if (defined($dh{EXCLUDE_FIND}) && $dh{EXCLUDE_FIND} ne '') {
- $find_options="! \\( $dh{EXCLUDE_FIND} \\)";
- }
- foreach my $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) {
- my @opts;
- if (defined $dh{LIBPACKAGE} && length $dh{LIBPACKAGE}) {
- @opts=("-L".tmpdir($dh{LIBPACKAGE}."/DEBIAN/shlibs"));
- }
- doit("dpkg-shlibdeps","-Tdebian/${ext}substvars",
- @opts,@{$dh{U_PARAMS}},@filelist);
- }
-}
-
-=head1 SEE ALSO
-
-L<debhelper(7)>
-
-This program is a part of debhelper.
-
-=head1 AUTHOR
-
-Joey Hess <joeyh@debian.org>
-
-=cut