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