From: Vincent Pit Date: Fri, 4 Jul 2008 12:12:29 +0000 (+0200) Subject: Set VMG_COMPAT_ARRAY_PUSH_NOLEN for Windows ActiveState Perl 5.8.x X-Git-Tag: v0.18~1 X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2FVariable-Magic.git;a=commitdiff_plain;h=0da6f437954bd0e68168bc3b743b337b0f7afa05 Set VMG_COMPAT_ARRAY_PUSH_NOLEN for Windows ActiveState Perl 5.8.x --- diff --git a/Magic.xs b/Magic.xs index 85d7c85..8263116 100644 --- a/Magic.xs +++ b/Magic.xs @@ -74,7 +74,7 @@ # define VMG_UVAR 0 #endif -#if (VMG_PERL_PATCHLEVEL >= 25854) || (!VMG_PERL_PATCHLEVEL && PERL_VERSION_GE(5, 9, 3)) +#if !defined(VMG_COMPAT_ARRAY_PUSH_NOLEN) && ((VMG_PERL_PATCHLEVEL >= 25854) || (!VMG_PERL_PATCHLEVEL && PERL_VERSION_GE(5, 9, 3))) # define VMG_COMPAT_ARRAY_PUSH_NOLEN 1 #else # define VMG_COMPAT_ARRAY_PUSH_NOLEN 0 diff --git a/Makefile.PL b/Makefile.PL index a8d679e..a656e7a 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -11,16 +11,34 @@ BEGIN { } my @DEFINES; + my $pl = $Config{perl_patchlevel}; print "Checking perl patchlevel... "; if (defined $pl && length $pl) { $pl = int $pl; - push @DEFINES, DEFINE => '-DVMG_PERL_PATCHLEVEL=' . $pl; + push @DEFINES, '-DVMG_PERL_PATCHLEVEL=' . $pl; print $pl, "\n"; } else { print "none\n"; } +my $is_as = 0; +print "Checking if this is Windows ActiveState 5.8.x... "; +if ($^O eq 'MSWin32' && $^V ge v5.8.7 && $^V lt v5.9.0) { + eval { + require Win32; + 1; + } and do { + if (defined &Win32::BuildNumber) { + $is_as = 1; + push @DEFINES, '-DVMG_COMPAT_ARRAY_PUSH_NOLEN=1'; + } + } +} +print $is_as ? "yes\n" : "no\n"; + +@DEFINES = (DEFINE => join ' ', @DEFINES) if @DEFINES; + my $BUILD_REQUIRES = { 'Config' => 0, 'ExtUtils::MakeMaker' => 0,