From: Perl 5 Porters Date: Tue, 12 Mar 1996 05:23:29 +0000 (+0000) Subject: Update to MakeMaker 5.26: $^O, File::Copy, and move docs to bottom X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=79dd614e1e8c3b0e4ed35016e6971240b606da64;p=p5sagit%2Fp5-mst-13.2.git Update to MakeMaker 5.26: $^O, File::Copy, and move docs to bottom --- diff --git a/lib/ExtUtils/Manifest.pm b/lib/ExtUtils/Manifest.pm index 648b0ac..eb55560 100644 --- a/lib/ExtUtils/Manifest.pm +++ b/lib/ExtUtils/Manifest.pm @@ -1,143 +1,5 @@ package ExtUtils::Manifest; -=head1 NAME - -ExtUtils::Manifest - utilities to write and check a MANIFEST file - -=head1 SYNOPSIS - -C - -C - -C - -C - -C - -C - -C - -C - -C - -=head1 DESCRIPTION - -Mkmanifest() writes all files in and below the current directory to a -file named in the global variable $ExtUtils::Manifest::MANIFEST (which -defaults to C) in the current directory. It works similar to - - find . -print - -but in doing so checks each line in an existing C file and -includes any comments that are found in the existing C file -in the new one. Anything between white space and an end of line within -a C file is considered to be a comment. Filenames and -comments are seperated by one or more TAB characters in the -output. All files that match any regular expression in a file -C (if such a file exists) are ignored. - -Manicheck() checks if all the files within a C in the current -directory really do exist. - -Filecheck() finds files below the current directory that are not -mentioned in the C file. An optional file C -will be consulted. Any file matching a regular expression in such a -file will not be reported as missing in the C file. - -Fullcheck() does both a manicheck() and a filecheck(). - -Skipcheck() lists all the files that are skipped due to your -C file. - -Manifind() retruns a hash reference. The keys of the hash are the -files found below the current directory. - -Maniread($file) reads a named C file (defaults to -C in the current directory) and returns a HASH reference -with files being the keys and comments being the values of the HASH. - -I copies the files that are the keys in -the HASH I<%$read> to the named target directory. The HASH reference -I<$read> is typically returned by the maniread() function. This -function is useful for producing a directory tree identical to the -intended distribution tree. The third parameter $how can be used to -specify a different methods of "copying". Valid values are C, -which actually copies the files, C which creates hard links, and -C which mostly links the files but copies any symbolic link to -make a tree without any symbolic link. Best is the default. - -=head1 MANIFEST.SKIP - -The file MANIFEST.SKIP may contain regular expressions of files that -should be ignored by mkmanifest() and filecheck(). The regular -expressions should appear one on each line. A typical example: - - \bRCS\b - ^MANIFEST\. - ^Makefile$ - ~$ - \.html$ - \.old$ - ^blib/ - ^MakeMaker-\d - -=head1 EXPORT_OK - -C<&mkmanifest>, C<&manicheck>, C<&filecheck>, C<&fullcheck>, -C<&maniread>, and C<&manicopy> are exportable. - -=head1 GLOBAL VARIABLES - -C<$ExtUtils::Manifest::MANIFEST> defaults to C. Changing it -results in both a different C and a different -C file. This is useful if you want to maintain -different distributions for different audiences (say a user version -and a developer version including RCS). - -<$ExtUtils::Manifest::Quiet> defaults to 0. If set to a true value, -all functions act silently. - -=head1 DIAGNOSTICS - -All diagnostic output is sent to C. - -=over - -=item C I - -is reported if a file is found, that is missing in the C -file which is excluded by a regular expression in the file -C. - -=item C I - -is reported if a file mentioned in a C file does not -exist. - -=item C I<$!> - -is reported if C could not be opened. - -=item C I - -is reported by mkmanifest() if $Verbose is set and a file is added -to MANIFEST. $Verbose is set to 1 by default. - -=back - -=head1 SEE ALSO - -L which has handy targets for most of the functionality. - -=head1 AUTHOR - -Andreas Koenig Fkoenig@franz.ww.TU-Berlin.DEE> - -=cut require Exporter; @ISA=('Exporter'); @@ -146,13 +8,14 @@ require Exporter; use Config; use File::Find; +use File::Copy 'copy'; use Carp; $Debug = 0; $Verbose = 1; -$Is_VMS = $Config{'osname'} eq 'VMS'; +$Is_VMS = $^O eq 'VMS'; -$VERSION = $VERSION = substr(q$Revision: 1.22 $,10,4); +$VERSION = $VERSION = substr(q$Revision: 1.23 $,10,4); $Quiet = 0; @@ -359,13 +222,8 @@ sub vms_cp_if_diff { sub cp { my ($srcFile, $dstFile) = @_; - my $buf; - open (IN,"<$srcFile") or die "Can't open input $srcFile: $!\n"; - open (OUT,">$dstFile") or die "Can't open output $dstFile: $!\n"; - my ($perm,$access,$mod) = (stat IN)[2,8,9]; - syswrite(OUT, $buf, $len) while $len = sysread(IN, $buf, 8192); - close IN; - close OUT; + my ($perm,$access,$mod) = (stat $srcFile)[2,8,9]; + copy($srcFile,$dstFile); utime $access, $mod, $dstFile; # chmod a+rX-w,go-w chmod( 0444 | ( $perm & 0111 ? 0111 : 0 ), $dstFile ); @@ -389,3 +247,144 @@ sub best { } 1; + +__END__ + +=head1 NAME + +ExtUtils::Manifest - utilities to write and check a MANIFEST file + +=head1 SYNOPSIS + +C + +C + +C + +C + +C + +C + +C + +C + +C + +=head1 DESCRIPTION + +Mkmanifest() writes all files in and below the current directory to a +file named in the global variable $ExtUtils::Manifest::MANIFEST (which +defaults to C) in the current directory. It works similar to + + find . -print + +but in doing so checks each line in an existing C file and +includes any comments that are found in the existing C file +in the new one. Anything between white space and an end of line within +a C file is considered to be a comment. Filenames and +comments are seperated by one or more TAB characters in the +output. All files that match any regular expression in a file +C (if such a file exists) are ignored. + +Manicheck() checks if all the files within a C in the current +directory really do exist. + +Filecheck() finds files below the current directory that are not +mentioned in the C file. An optional file C +will be consulted. Any file matching a regular expression in such a +file will not be reported as missing in the C file. + +Fullcheck() does both a manicheck() and a filecheck(). + +Skipcheck() lists all the files that are skipped due to your +C file. + +Manifind() retruns a hash reference. The keys of the hash are the +files found below the current directory. + +Maniread($file) reads a named C file (defaults to +C in the current directory) and returns a HASH reference +with files being the keys and comments being the values of the HASH. + +I copies the files that are the keys in +the HASH I<%$read> to the named target directory. The HASH reference +I<$read> is typically returned by the maniread() function. This +function is useful for producing a directory tree identical to the +intended distribution tree. The third parameter $how can be used to +specify a different methods of "copying". Valid values are C, +which actually copies the files, C which creates hard links, and +C which mostly links the files but copies any symbolic link to +make a tree without any symbolic link. Best is the default. + +=head1 MANIFEST.SKIP + +The file MANIFEST.SKIP may contain regular expressions of files that +should be ignored by mkmanifest() and filecheck(). The regular +expressions should appear one on each line. A typical example: + + \bRCS\b + ^MANIFEST\. + ^Makefile$ + ~$ + \.html$ + \.old$ + ^blib/ + ^MakeMaker-\d + +=head1 EXPORT_OK + +C<&mkmanifest>, C<&manicheck>, C<&filecheck>, C<&fullcheck>, +C<&maniread>, and C<&manicopy> are exportable. + +=head1 GLOBAL VARIABLES + +C<$ExtUtils::Manifest::MANIFEST> defaults to C. Changing it +results in both a different C and a different +C file. This is useful if you want to maintain +different distributions for different audiences (say a user version +and a developer version including RCS). + +<$ExtUtils::Manifest::Quiet> defaults to 0. If set to a true value, +all functions act silently. + +=head1 DIAGNOSTICS + +All diagnostic output is sent to C. + +=over + +=item C I + +is reported if a file is found, that is missing in the C +file which is excluded by a regular expression in the file +C. + +=item C I + +is reported if a file mentioned in a C file does not +exist. + +=item C I<$!> + +is reported if C could not be opened. + +=item C I + +is reported by mkmanifest() if $Verbose is set and a file is added +to MANIFEST. $Verbose is set to 1 by default. + +=back + +=head1 SEE ALSO + +L which has handy targets for most of the functionality. + +=head1 AUTHOR + +Andreas Koenig Fkoenig@franz.ww.TU-Berlin.DEE> + +=cut