1package ExtUtils::MM_Cygwin; 2 3use strict; 4use vars qw($VERSION @ISA); 5 6use Config; 7use File::Spec; 8 9require ExtUtils::MM_Any; 10require ExtUtils::MM_Unix; 11@ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix ); 12 13$VERSION = 1.06; 14 15 16=head1 NAME 17 18ExtUtils::MM_Cygwin - methods to override UN*X behaviour in ExtUtils::MakeMaker 19 20=head1 SYNOPSIS 21 22 use ExtUtils::MM_Cygwin; # Done internally by ExtUtils::MakeMaker if needed 23 24=head1 DESCRIPTION 25 26See ExtUtils::MM_Unix for a documentation of the methods provided there. 27 28=over 4 29 30=item os_flavor (o) 31 32We're Unix and Cygwin. 33 34=cut 35 36sub os_flavor { 37 return('Unix', 'Cygwin'); 38} 39 40=item cflags (o) 41 42if configured for dynamic loading, triggers #define EXT in EXTERN.h 43 44=cut 45 46sub cflags { 47 my($self,$libperl)=@_; 48 return $self->{CFLAGS} if $self->{CFLAGS}; 49 return '' unless $self->needs_linking(); 50 51 my $base = $self->SUPER::cflags($libperl); 52 foreach (split /\n/, $base) { 53 /^(\S*)\s*=\s*(\S*)$/ and $self->{$1} = $2; 54 }; 55 $self->{CCFLAGS} .= " -DUSEIMPORTLIB" if ($Config{useshrplib} eq 'true'); 56 57 return $self->{CFLAGS} = qq{ 58CCFLAGS = $self->{CCFLAGS} 59OPTIMIZE = $self->{OPTIMIZE} 60PERLTYPE = $self->{PERLTYPE} 61}; 62 63} 64 65 66=item replace_manpage_separator (o) 67 68replaces strings '::' with '.' in MAN*POD man page names 69 70=cut 71 72sub replace_manpage_separator { 73 my($self, $man) = @_; 74 $man =~ s{/+}{.}g; 75 return $man; 76} 77 78=item init_linker 79 80points to libperl.a 81 82=cut 83 84sub init_linker { 85 my $self = shift; 86 87 if ($Config{useshrplib} eq 'true') { 88 my $libperl = '$(PERL_INC)' .'/'. "$Config{libperl}"; 89 if( $] >= 5.007 ) { 90 $libperl =~ s/a$/dll.a/; 91 } 92 $self->{PERL_ARCHIVE} = $libperl; 93 } else { 94 $self->{PERL_ARCHIVE} = 95 '$(PERL_INC)' .'/'. ("$Config{libperl}" or "libperl.a"); 96 } 97 98 $self->{PERL_ARCHIVE_AFTER} ||= ''; 99 $self->{EXPORT_LIST} ||= ''; 100} 101 102=back 103 104=cut 105 1061; 107