]> git.donarmstrong.com Git - debhelper.git/blob - dh_makeshlibs
r273: * dh_installdocs.1: clarified how the doc-id is determined. Closes: #44864
[debhelper.git] / dh_makeshlibs
1 #!/usr/bin/perl -w
2 #
3 # Automatically generate shlibs files.
4
5 BEGIN { push @INC, "debian", "/usr/share/debhelper" }
6 use Dh_Lib;
7 init();
8
9 foreach $PACKAGE (@{$dh{DOPACKAGES}}) {
10         $TMP=tmpdir($PACKAGE);
11
12         doit("rm", "-f", "$TMP/DEBIAN/shlibs");
13
14         open (FIND, "find $TMP -type f -name '*.so.*' |");
15         while (<FIND>) {
16                 chomp;
17                 ($library, $major)=m#.*/(.*)\.so\.(\d*)\.?#;
18                 if (defined($dh{M_PARAMS}) && $dh{M_PARAMS} ne '') {
19                         $major=$dh{M_PARAMS};
20                 }
21                 if (! -d "$TMP/DEBIAN") {
22                         doit("install","-d","$TMP/DEBIAN");
23                 }
24                 $deps=$PACKAGE;
25                 if ($dh{V_FLAG_SET}) {
26                         if ($dh{V_FLAG} ne '') {
27                                 $deps=$dh{V_FLAG};
28                         }       
29                         else {
30                                 # Call isnative becuase it sets $dh{VERSION}
31                                 # as a side effect.
32                                 isnative($PACKAGE);
33                                 $deps="$PACKAGE (>= $dh{VERSION})";
34                         }
35                 }
36                 if (defined($library) && defined($major) && defined($deps) && 
37                     $library ne '' && $major ne '' && $deps ne '') {
38                         complex_doit("echo '$library $major $deps' >>$TMP/DEBIAN/shlibs");
39                 }
40         }
41         close FIND;
42
43         if (-e "$TMP/DEBIAN/shlibs") {
44                 doit("chmod",644,"$TMP/DEBIAN/shlibs");
45                 doit("chown","root.root","$TMP/DEBIAN/shlibs");
46         }
47 }