]> git.vpit.fr Git - perl/modules/Variable-Magic.git/blobdiff - Makefile.PL
The magic signatures are no longer needed
[perl/modules/Variable-Magic.git] / Makefile.PL
index 2570329a576207ed670aa0ff1da6e2b04f0ba745..fe93d2121134d38e577b613faded2e543190ed12 100644 (file)
@@ -7,50 +7,58 @@ use ExtUtils::MakeMaker;
 BEGIN {
  eval { require Config };
  die 'OS unsupported' if $@;
- Config->import(qw/%Config/);
+ Config->import(qw<%Config>);
 }
 
 my @DEFINES;
+my %macro;
 
-my $pl = $Config{perl_patchlevel};
-print "Checking perl patchlevel... ";
-if (defined $pl && length $pl) {
- $pl = int $pl;
- push @DEFINES, '-DVMG_PERL_PATCHLEVEL=' . $pl;
- print $pl, "\n";
-} else {
- print "none\n";
-}
+my $as_perl = eval {
+ require ActivePerl;
+ defined &ActivePerl::BUILD ? ActivePerl::BUILD() : undef
+};
 
-my $is_as = 0;
+my $is_as_822 = 0;
 print "Checking if this is ActiveState Perl 5.8.8 build 822 or higher... ";
-if ($^V eq v5.8.8) {
- eval {
-  require ActivePerl;
-  1;
- } and do {
-  if (defined &ActivePerl::BUILD) {
-   my $build = int ActivePerl::BUILD();
-   if ($build >= 822) {
-    $is_as = 1;
-    push @DEFINES, '-DVMG_COMPAT_ARRAY_PUSH_NOLEN=1';
-   }
-  }
+if ("$]" == 5.008008 and defined $as_perl and $as_perl >= 822) {
+ $is_as_822 = 1;
+ push @DEFINES, '-DVMG_COMPAT_ARRAY_PUSH_NOLEN=1';
+}
+print $is_as_822 ? "yes\n" : "no\n";
+
+my $is_gcc_34 = 0;
+print "Checking if this is gcc 3.4 on Windows trying to link against an import library... ";
+if ($^O eq 'MSWin32' and not grep /^LD[A-Z]*=/, @ARGV) {
+ my ($libperl, $gccversion) = map $_ || '', @Config{qw<libperl gccversion>};
+ if ($gccversion =~ /^3\.4\.[0-9]+/ and $libperl =~ s/\.lib$//) {
+  $is_gcc_34 = 1;
+  my ($lddlflags, $ldflags) = @Config{qw<lddlflags ldflags>};
+  $_ ||= '', s/-L(?:".*?"|\S+)//g for $lddlflags, $ldflags;
+  $libperl = "-l$libperl";
+  my $libdirs = join ' ',
+                 map { s/(?<!\\)((?:\\\\)*")/\\$1/g; qq[-L"$_"] }
+                  @Config{qw<bin sitebin>};
+  $macro{LDDLFLAGS}    = "$lddlflags $libdirs $libperl";
+  $macro{LDFLAGS}      = "$ldflags $libdirs $libperl";
+  $macro{PERL_ARCHIVE} = '',
  }
 }
-print $is_as ? "yes\n" : "no\n";
+print $is_gcc_34 ? "yes\n" : "no\n";
 
 # Threads, Windows and 5.8.x don't seem to be best friends
-if ($^O eq 'MSWin32' && $^V lt v5.9.0) {
+if ($^O eq 'MSWin32' && "$]" < 5.009) {
  push @DEFINES, '-DVMG_MULTIPLICITY=0';
+ print "Thread safety disabled for perl 5.8.x on Windows.\n"
 }
 
 # Fork emulation got "fixed" in 5.10.1
-if ($^O eq 'MSWin32' && $^V lt v5.10.1) {
+if ($^O eq 'MSWin32' && "$]" < 5.010001) {
  push @DEFINES, '-DVMG_FORKSAFE=0';
+ print "Fork safety not ensured for perl 5.8.x and 5.10.0 on Windows.\n";
 }
 
 @DEFINES = (DEFINE => join ' ', @DEFINES) if @DEFINES;
+%macro   = (macro  => { %macro })         if %macro; # Beware of the circle
 
 my $dist = 'Variable-Magic';
 
@@ -88,21 +96,22 @@ my %META = (
 );
 
 WriteMakefile(
-    NAME             => $name,
-    AUTHOR           => 'Vincent Pit <perl@profvince.com>',
-    LICENSE          => 'perl',
-    VERSION_FROM     => $file,
-    ABSTRACT_FROM    => $file,
-    PL_FILES         => {},
-    @DEFINES,
-    PREREQ_PM        => \%PREREQ_PM,
-    MIN_PERL_VERSION => 5.008,
-    META_MERGE       => \%META,
-    dist             => {
-        PREOP    => "pod2text $file > \$(DISTVNAME)/README",
-        COMPRESS => 'gzip -9f', SUFFIX => 'gz'
-    },
-    clean            => {
-        FILES => "$dist-* *.gcov *.gcda *.gcno cover_db Debian_CPANTS.txt"
-    },
+ NAME             => $name,
+ AUTHOR           => 'Vincent Pit <perl@profvince.com>',
+ LICENSE          => 'perl',
+ VERSION_FROM     => $file,
+ ABSTRACT_FROM    => $file,
+ PL_FILES         => {},
+ @DEFINES,
+ PREREQ_PM        => \%PREREQ_PM,
+ MIN_PERL_VERSION => 5.008,
+ META_MERGE       => \%META,
+ dist             => {
+  PREOP    => "pod2text -u $file > \$(DISTVNAME)/README",
+  COMPRESS => 'gzip -9f', SUFFIX => 'gz'
+ },
+ clean            => {
+  FILES => "$dist-* *.gcov *.gcda *.gcno cover_db Debian_CPANTS.txt"
+ },
+ %macro,
 );