diff options
author | unknown <unknown> | 2003-07-28 18:43:17 +0000 |
---|---|---|
committer | unknown <unknown> | 2003-07-28 18:43:17 +0000 |
commit | e5474c83813a7795bb9ee043f65fcf57167039f7 (patch) | |
tree | 47c37051ccc443d59968a2acd5d86a53b3c4a6b0 /dh_shlibdeps | |
parent | d579dae0cf159c50dcd902ff4a35590f7dcff395 (diff) | |
parent | 63e45075003b1d9fcff097b5644a81131c346653 (diff) | |
download | debhelper-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-x | dh_shlibdeps | 145 |
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 |