2 ################################################################################
3 # Copyright (C) 2001-2007, Parrot Foundation.
5 ################################################################################
9 tools/dev/mk_rpm_manifests.pl - Generate MANIFEST.* files for building RPMs
13 % perl tools/dev/mk_rpm_manifests.pl [options]
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.
30 The build prefix. Defaults to ''.
34 The install prefix. Defaults to '/usr'.
38 The exec prefix. Defaults to '/usr'.
42 The executables directory. Defaults to '/usr/bin'.
46 The library directory. Defaults to '/usr/lib'.
50 The header directory. Defaults to '/usr/include'.
60 ################################################################################
67 exec_prefix
=> '/usr',
70 includedir
=> '/usr/include',
75 if (/^--([^=]+)=(.*)/) {
83 my %FILES; # { package => file }
87 my ( $file, $meta, $dest ) = split( /\s+/, $_ );
89 my $generated = $meta =~ s/^\*//;
90 my ($package) = $meta =~ /^\[(.*?)\]/;
91 $meta =~ s/^\[(.*?)\]//;
92 next if $package eq "";
94 @meta{ split( /,/, $meta ) } = ();
95 $meta{$_} = 1 for ( keys %meta ); # Laziness
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";
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);
123 print "Wrote $manifest\n";
128 # cperl-indent-level: 4
131 # vim: expandtab shiftwidth=4: