-Uusedl on cygwin
authorReini Urban <rurban@x-ray.at>
Mon, 5 May 2008 20:34:13 +0000 (22:34 +0200)
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>
Thu, 8 May 2008 15:38:43 +0000 (15:38 +0000)
Message-ID: <481F5325.5090907@x-ray.at>

p4raw-id: //depot/perl@33792

ext/Win32CORE/Makefile.PL
ext/Win32CORE/Win32CORE.c

index 0fec306..77c1f32 100644 (file)
@@ -4,3 +4,15 @@ WriteMakefile(
     'NAME'             => 'Win32CORE',
     'VERSION_FROM'     => 'Win32CORE.pm',
 );
+
+# undef USEIMPORTLIB for static compilation
+sub MY::cflags {
+  package MY;         # so that "SUPER" works right
+  my ($self, $libperl)=@_;
+  return '' unless $self->needs_linking();
+  my $base = $self->SUPER::cflags($libperl);
+  if ($self->{LINKTYPE} eq 'static') {
+    $base =~ s/CCFLAGS =(.*)$/CCFLAGS =\1 -UUSEIMPORTLIB /m;
+  }
+  return $base;
+}
index 7769c74..9863b5b 100644 (file)
 #define WIN32_LEAN_AND_MEAN
 #include <windows.h>
 
+#if defined(__CYGWIN__) && !defined(USEIMPORTLIB)
+  #undef WIN32
+#endif
 #include "EXTERN.h"
+#if defined(__CYGWIN__) && !defined(USEIMPORTLIB)
+  #define EXTCONST extern const
+#endif
 #include "perl.h"
 #include "XSUB.h"
 
@@ -62,7 +68,7 @@ XS(boot_Win32CORE)
      * should never be called though, as Win32CORE.pm doesn't use DynaLoader.
      */
 }
-#ifdef __CYGWIN__
+#if defined(__CYGWIN__) && defined(USEIMPORTLIB)
 __declspec(dllexport)
 #endif
 void