xref: /netbsd-src/crypto/external/bsd/openssl/dist/doc/build.info.in (revision b0d1725196a7921d003d2c66a14f186abda4176b)
1*b0d17251SchristosSUBDIRS = man1
2*b0d17251Schristos
3*b0d17251Schristos{-
4*b0d17251Schristos use File::Spec::Functions qw(:DEFAULT abs2rel rel2abs);
5*b0d17251Schristos use File::Basename;
6*b0d17251Schristos
7*b0d17251Schristos my $sourcedir = catdir($config{sourcedir}, 'doc');
8*b0d17251Schristos
9*b0d17251Schristos foreach my $section ((1, 3, 5, 7)) {
10*b0d17251Schristos     my @imagefiles = ();
11*b0d17251Schristos     my @htmlfiles = ();
12*b0d17251Schristos     my @manfiles = ();
13*b0d17251Schristos     my %pngfiles =
14*b0d17251Schristos         map { $_ => 1 } glob catfile($sourcedir, "man$section", "img", "*.png");
15*b0d17251Schristos     my %podfiles =
16*b0d17251Schristos         map { $_ => 1 } glob catfile($sourcedir, "man$section", "*.pod");
17*b0d17251Schristos     my %podinfiles =
18*b0d17251Schristos         map { $_ => 1 } glob catfile($sourcedir, "man$section", "*.pod.in");
19*b0d17251Schristos
20*b0d17251Schristos     foreach (keys %podinfiles) {
21*b0d17251Schristos         (my $p = $_) =~ s|\.in$||i;
22*b0d17251Schristos         $podfiles{$p} = 1;
23*b0d17251Schristos     }
24*b0d17251Schristos
25*b0d17251Schristos     foreach my $p (sort keys %podfiles) {
26*b0d17251Schristos         my $podfile = abs2rel($p, $sourcedir);
27*b0d17251Schristos         my $podname = basename($podfile, '.pod');
28*b0d17251Schristos         my $podinfile = $podinfiles{"$p.in"} ? "$podfile.in" : undef;
29*b0d17251Schristos
30*b0d17251Schristos         my $podname = basename($podfile, ".pod");
31*b0d17251Schristos
32*b0d17251Schristos         my $htmlfile = abs2rel(catfile($buildtop, "doc", "html", "man$section",
33*b0d17251Schristos                                        "$podname.html"),
34*b0d17251Schristos                                catdir($buildtop, "doc"));
35*b0d17251Schristos         my $manfile = abs2rel(catfile($buildtop, "doc", "man", "man$section",
36*b0d17251Schristos                                       "$podname.$section"),
37*b0d17251Schristos                               catdir($buildtop, "doc"));
38*b0d17251Schristos
39*b0d17251Schristos         # The build.info format requires file specs to be in Unix format.
40*b0d17251Schristos         # Especially, since VMS file specs use [ and ], the build.info parser
41*b0d17251Schristos         # will otherwise get terribly confused.
42*b0d17251Schristos         if ($^O eq 'VMS') {
43*b0d17251Schristos             $htmlfile = VMS::Filespec::unixify($htmlfile);
44*b0d17251Schristos             $manfile = VMS::Filespec::unixify($manfile);
45*b0d17251Schristos             $podfile = VMS::Filespec::unixify($podfile);
46*b0d17251Schristos             $podinfile = VMS::Filespec::unixify($podinfile)
47*b0d17251Schristos                 if defined $podinfile;
48*b0d17251Schristos         } elsif ($^O eq 'MSWin32') {
49*b0d17251Schristos             $htmlfile =~ s|\\|/|g;
50*b0d17251Schristos             $manfile =~ s|\\|/|g;
51*b0d17251Schristos             $podfile =~ s|\\|/|g;
52*b0d17251Schristos             $podinfile =~ s|\\|/|g
53*b0d17251Schristos                 if defined $podinfile;
54*b0d17251Schristos         }
55*b0d17251Schristos         push @htmlfiles, $htmlfile;
56*b0d17251Schristos         push @manfiles, $manfile;
57*b0d17251Schristos         $OUT .= << "_____";
58*b0d17251SchristosDEPEND[$htmlfile]=$podfile
59*b0d17251SchristosGENERATE[$htmlfile]=$podfile
60*b0d17251SchristosDEPEND[$manfile]=$podfile
61*b0d17251SchristosGENERATE[$manfile]=$podfile
62*b0d17251Schristos_____
63*b0d17251Schristos         $OUT .= << "_____" if $podinfile;
64*b0d17251SchristosDEPEND[$podfile]{pod}=$podinfile
65*b0d17251SchristosGENERATE[$podfile]=$podinfile
66*b0d17251Schristos_____
67*b0d17251Schristos     }
68*b0d17251Schristos
69*b0d17251Schristos     foreach my $p (sort keys %pngfiles) {
70*b0d17251Schristos         my $relpath = abs2rel($p, $sourcedir);
71*b0d17251Schristos         my $imagefile = abs2rel(catfile($buildtop, "doc", "$relpath"),
72*b0d17251Schristos                                 catdir($buildtop, "doc"));
73*b0d17251Schristos         push @imagefiles, $imagefile;
74*b0d17251Schristos     }
75*b0d17251Schristos
76*b0d17251Schristos     $OUT .= "IMAGEDOCS[man$section]=" . join(" \\\n", @imagefiles) . "\n";
77*b0d17251Schristos     $OUT .= "HTMLDOCS[man$section]=" . join(" \\\n", @htmlfiles) . "\n";
78*b0d17251Schristos     $OUT .= "MANDOCS[man$section]=" . join(" \\\n", @manfiles) . "\n";
79*b0d17251Schristos }
80*b0d17251Schristos -}
81