summaryrefslogtreecommitdiff
path: root/cpan/Digest-SHA/Makefile.PL
diff options
context:
space:
mode:
Diffstat (limited to 'cpan/Digest-SHA/Makefile.PL')
-rw-r--r--cpan/Digest-SHA/Makefile.PL59
1 files changed, 49 insertions, 10 deletions
diff --git a/cpan/Digest-SHA/Makefile.PL b/cpan/Digest-SHA/Makefile.PL
index 3d8386563f..8e882ca6e8 100644
--- a/cpan/Digest-SHA/Makefile.PL
+++ b/cpan/Digest-SHA/Makefile.PL
@@ -5,14 +5,51 @@ use ExtUtils::MakeMaker;
use Getopt::Std;
use Config qw(%Config);
+use vars qw($opt_t $opt_w $opt_x);
+
my $PM = 'lib/Digest/SHA.pm';
+my $SHASUM = 'shasum';
+
+ # 'use warnings' if possible, but stay portable
-my %opts;
-getopts('tx', \%opts); # -t is no longer used, but allow it anyway
+my($use_warnings, @EDITs);
+my $warn_1 = 'BEGIN { $^W = 1 }';
+my $warn_0 = 'BEGIN { $^W = 0 }';
+{
+ eval "require warnings; import warnings";
+ $use_warnings = $@ ? 0 : 1;
+
+ local(@ARGV) = ($PM, $SHASUM);
+ while (<>) {
+ if (
+ (!$use_warnings && /^(use|no) warnings\b/) ||
+ ( $use_warnings && /^\Q$warn_1\E # use warnings\b/) ||
+ ( $use_warnings && /^\Q$warn_0\E # no warnings\b/)) {
+ push @EDITs, $ARGV;
+ close ARGV;
+ }
+ }
+}
+
+if (@EDITs) {
+ local($^I, @ARGV) = ('', @EDITs);
+ while (<>) {
+ if ($use_warnings) {
+ s/^\Q$warn_1\E # (.*)$/$1/;
+ s/^\Q$warn_0\E # (.*)$/$1/;
+ }
+ else {
+ s/^(use warnings\b.*)$/$warn_1 # $1/;
+ s/^(no warnings\b.*)$/$warn_0 # $1/;
+ }
+ print;
+ }
+}
+
+getopts('twx'); # -t is no longer used, but allow it anyway
my @defines;
-push(@defines, '-DSHA_PerlIO') if $] >= 5.004;
-push(@defines, '-DNO_SHA_384_512') if $opts{'x'};
+push(@defines, '-DNO_SHA_384_512') if $opt_x;
my $define = join(' ', @defines);
# Workaround for DEC compiler bug, adapted from Digest::MD5
@@ -21,7 +58,7 @@ my @extra = ();
if ($^O eq 'VMS') {
if (defined($Config{ccname})) {
if (grep(/VMS_VAX/, @INC) && ($Config{ccname} eq 'DEC')) {
- # VAX compiler optimizer even up to v6.4 gets stuck
+ # VAX optimizer, even up to v6.4, gets stuck
push(@extra, OPTIMIZE => "/Optimize=(NODISJOINT)");
}
}
@@ -33,18 +70,20 @@ if ($Config{archname} =~ /^i[3456]86/ && $Config{ccname} eq 'gcc') {
push(@extra, OPTIMIZE => '-O1 -fomit-frame-pointer');
}
-my %att = (
+push(@extra, CCFLAGS => '-W -Wall ' . $Config{ccflags}) if $opt_w;
+
+my %attr = (
'NAME' => 'Digest::SHA',
'VERSION_FROM' => $PM,
'LIBS' => [''],
'DEFINE' => $define,
'INC' => '-I.',
- 'EXE_FILES' => [ 'shasum' ],
+ 'EXE_FILES' => [ $SHASUM ],
'INSTALLDIRS' => ($] >= 5.010 and $] < 5.011) ? 'perl' : 'site',
@extra,
);
-my $MMversion = $ExtUtils::MakeMaker::VERSION || 0;
-$att{NO_META} = 1 unless $MMversion < 6.10_03;
+my $MMversion = $ExtUtils::MakeMaker::VERSION || '0.00_00';
+$attr{NO_META} = 1 if $MMversion ge '6.10_03';
-WriteMakefile(%att);
+WriteMakefile(%attr);