[docs][TT# 1667] Get rid of wrong documentation
[parrot.git] / tools / dev / mk_rpm_manifests.pl
blob251714b7138f0606afae460bd32632570c59e67a
1 #! perl
2 ################################################################################
3 # Copyright (C) 2001-2007, Parrot Foundation.
4 # $Id$
5 ################################################################################
7 =head1 TITLE
9 tools/dev/mk_rpm_manifests.pl - Generate MANIFEST.* files for building RPMs
11 =head1 SYNOPSIS
13 % perl tools/dev/mk_rpm_manifests.pl [options]
15 =head1 DESCRIPTION
17 This file generates a set of F<MANIFEST.*> files that give the final
18 locations in the file system for all the installable files listed in
19 F<MANIFEST> and F<MANIFEST.generated>.
21 It does NOT generate the F<MANIFEST> file that F<Configure.pl> checks
22 and the manifest checks use.
24 =head2 Options
26 =over 4
28 =item C<buildprefix>
30 The build prefix. Defaults to ''.
32 =item C<prefix>
34 The install prefix. Defaults to '/usr'.
36 =item C<exec_prefix>
38 The exec prefix. Defaults to '/usr'.
40 =item C<bindir>
42 The executables directory. Defaults to '/usr/bin'.
44 =item C<libdir>
46 The library directory. Defaults to '/usr/lib'.
48 =item C<includedir>
50 The header directory. Defaults to '/usr/include'.
52 =back
54 =head1 SEE ALSO
56 F<install_files.pl>
58 =cut
60 ################################################################################
62 use strict;
63 use warnings;
65 my %options = (
66 prefix => '/usr',
67 exec_prefix => '/usr',
68 bindir => '/usr/bin',
69 libdir => '/usr/lib',
70 includedir => '/usr/include',
73 my $manifest;
74 foreach (@ARGV) {
75 if (/^--([^=]+)=(.*)/) {
76 $options{$1} = $2;
78 else {
79 $manifest = $_;
83 my %FILES; # { package => file }
84 @ARGV = ($manifest);
85 while (<>) {
86 chomp;
87 my ( $file, $meta, $dest ) = split( /\s+/, $_ );
88 $dest ||= $file;
89 my $generated = $meta =~ s/^\*//;
90 my ($package) = $meta =~ /^\[(.*?)\]/;
91 $meta =~ s/^\[(.*?)\]//;
92 next if $package eq "";
93 my %meta;
94 @meta{ split( /,/, $meta ) } = ();
95 $meta{$_} = 1 for ( keys %meta ); # Laziness
97 my $entry;
99 if ( $meta{doc} ) {
100 $entry = "%doc $dest";
102 elsif ( $meta{lib} ) {
103 $entry = "$options{libdir}/$dest";
105 elsif ( $meta{bin} ) {
106 $entry = "$options{bindir}/$dest";
108 elsif ( $meta{include} ) {
109 $entry = "$options{includedir}/$dest";
111 else {
112 $entry = "$options{prefix}/$dest";
115 push @{ $FILES{$package} }, $entry;
118 while ( my ( $package, $files ) = each %FILES ) {
119 my $manifest = "MANIFEST.$package";
120 open( my $MANIFEST, ">", "$manifest" ) or die "create $manifest: $!";
121 print $MANIFEST "$_\n" foreach (@$files);
122 close $MANIFEST;
123 print "Wrote $manifest\n";
126 # Local Variables:
127 # mode: cperl
128 # cperl-indent-level: 4
129 # fill-column: 100
130 # End:
131 # vim: expandtab shiftwidth=4: