]> git.donarmstrong.com Git - debhelper.git/blob - dh_makeshlibs
r387: * I retract 2.1.23, the hack doesn't help make dpkg-shlibdeps work; db3
[debhelper.git] / dh_makeshlibs
1 #!/usr/bin/perl -w
2 #
3 # Automatically generate shlibs files.
4
5 use Debian::Debhelper::Dh_Lib;
6 init();
7
8 foreach $PACKAGE (@{$dh{DOPACKAGES}}) {
9         $TMP=tmpdir($PACKAGE);
10
11         my %seen;
12
13         doit("rm", "-f", "$TMP/DEBIAN/shlibs");
14
15         open (FIND, "find $TMP -xtype f -name '*.so.*' |");
16         while (<FIND>) {
17                 chomp;
18                 ($library, $major)=m#.*/(.*)\.so\.(\d*)\.?#;
19                 if (defined($dh{M_PARAMS}) && $dh{M_PARAMS} ne '') {
20                         $major=$dh{M_PARAMS};
21                 }
22                 if (! -d "$TMP/DEBIAN") {
23                         doit("install","-d","$TMP/DEBIAN");
24                 }
25                 $deps=$PACKAGE;
26                 if ($dh{V_FLAG_SET}) {
27                         if ($dh{V_FLAG} ne '') {
28                                 $deps=$dh{V_FLAG};
29                         }       
30                         else {
31                                 # Call isnative becuase it sets $dh{VERSION}
32                                 # as a side effect.
33                                 isnative($PACKAGE);
34                                 $deps="$PACKAGE (>= $dh{VERSION})";
35                         }
36                 }
37                 if (defined($library) && defined($major) && defined($deps) &&
38                     $library ne '' && $major ne '' && $deps ne '') {
39                         # Prevent duplicate lines from entering the file.
40                         my $line="$library $major $deps";
41                         if (! $seen{$line}) {
42                                 $seen{$line}=1;
43                                 complex_doit("echo '$line' >>$TMP/DEBIAN/shlibs");
44                         }
45                 }
46         }
47         close FIND;
48
49         if (-e "$TMP/DEBIAN/shlibs") {
50                 doit("chmod",644,"$TMP/DEBIAN/shlibs");
51                 doit("chown","0.0","$TMP/DEBIAN/shlibs");
52         }
53 }