package ExtUtils::MM_Cygwin; use strict; use ExtUtils::MakeMaker::Config; use File::Spec; require ExtUtils::MM_Unix; require ExtUtils::MM_Win32; our @ISA = qw( ExtUtils::MM_Unix ); our $VERSION = '6.68'; =head1 NAME ExtUtils::MM_Cygwin - methods to override UN*X behaviour in ExtUtils::MakeMaker =head1 SYNOPSIS use ExtUtils::MM_Cygwin; # Done internally by ExtUtils::MakeMaker if needed =head1 DESCRIPTION See ExtUtils::MM_Unix for a documentation of the methods provided there. =over 4 =item os_flavor We're Unix and Cygwin. =cut sub os_flavor { return('Unix', 'Cygwin'); } =item cflags if configured for dynamic loading, triggers #define EXT in EXTERN.h =cut sub cflags { my($self,$libperl)=@_; return $self->{CFLAGS} if $self->{CFLAGS}; return '' unless $self->needs_linking(); my $base = $self->SUPER::cflags($libperl); foreach (split /\n/, $base) { /^(\S*)\s*=\s*(\S*)$/ and $self->{$1} = $2; }; $self->{CCFLAGS} .= " -DUSEIMPORTLIB" if ($Config{useshrplib} eq 'true'); return $self->{CFLAGS} = qq{ CCFLAGS = $self->{CCFLAGS} OPTIMIZE = $self->{OPTIMIZE} PERLTYPE = $self->{PERLTYPE} }; } =item replace_manpage_separator replaces strings '::' with '.' in MAN*POD man page names =cut sub replace_manpage_separator { my($self, $man) = @_; $man =~ s{/+}{.}g; return $man; } =item init_linker points to libperl.a =cut sub init_linker { my $self = shift; if ($Config{useshrplib} eq 'true') { my $libperl = '$(PERL_INC)' .'/'. "$Config{libperl}"; if( $] >= 5.006002 ) { $libperl =~ s/a$/dll.a/; } $self->{PERL_ARCHIVE} = $libperl; } else { $self->{PERL_ARCHIVE} = '$(PERL_INC)' .'/'. ("$Config{libperl}" or "libperl.a"); } $self->{PERL_ARCHIVE_AFTER} ||= ''; $self->{EXPORT_LIST} ||= ''; } =item maybe_command If our path begins with F</cygdrive/> then we use C<ExtUtils::MM_Win32> to determine if it may be a command. Otherwise we use the tests from C<ExtUtils::MM_Unix>. =cut sub maybe_command { my ($self, $file) = @_; if ($file =~ m{^/cygdrive/}i) { return ExtUtils::MM_Win32->maybe_command($file); } return $self->SUPER::maybe_command($file); } =item dynamic_lib Use the default to produce the *.dll's. But for new archdir dll's use the same rebase address if the old exists. =cut sub dynamic_lib { my($self, %attribs) = @_; my $s = ExtUtils::MM_Unix::dynamic_lib($self, %attribs); my $ori = "$self->{INSTALLARCHLIB}/auto/$self->{FULLEXT}/$self->{BASEEXT}.$self->{DLEXT}"; if (-e $ori) { my $imagebase = `/bin/objdump -p $ori | /bin/grep ImageBase | /bin/cut -c12-`; chomp $imagebase; if ($imagebase gt "40000000") { my $LDDLFLAGS = $self->{LDDLFLAGS}; $LDDLFLAGS =~ s/-Wl,--enable-auto-image-base/-Wl,--image-base=0x$imagebase/; $s =~ s/ \$\(LDDLFLAGS\) / $LDDLFLAGS /m; } } $s; } =item all_target Build man pages, too =cut sub all_target { ExtUtils::MM_Unix::all_target(shift); } =back =cut 1;
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
Command | Folder | 0755 |
|
|
Liblist | Folder | 0755 |
|
|
MakeMaker | Folder | 0755 |
|
|
ParseXS | Folder | 0755 |
|
|
Typemaps | Folder | 0755 |
|
|
Liblist.pm | File | 9.47 KB | 0644 |
|
MANIFEST.SKIP | File | 824 B | 0644 |
|
MM.pm | File | 2.06 KB | 0644 |
|
MM_AIX.pm | File | 1.53 KB | 0644 |
|
MM_Any.pm | File | 68.58 KB | 0644 |
|
MM_BeOS.pm | File | 982 B | 0644 |
|
MM_Cygwin.pm | File | 3.04 KB | 0644 |
|
MM_DOS.pm | File | 950 B | 0644 |
|
MM_Darwin.pm | File | 918 B | 0644 |
|
MM_MacOS.pm | File | 1.08 KB | 0644 |
|
MM_NW5.pm | File | 6.41 KB | 0644 |
|
MM_OS2.pm | File | 3.75 KB | 0644 |
|
MM_QNX.pm | File | 868 B | 0644 |
|
MM_UWIN.pm | File | 955 B | 0644 |
|
MM_Unix.pm | File | 91.82 KB | 0644 |
|
MM_VMS.pm | File | 59.65 KB | 0644 |
|
MM_VOS.pm | File | 723 B | 0644 |
|
MM_Win32.pm | File | 13.85 KB | 0644 |
|
MM_Win95.pm | File | 1.87 KB | 0644 |
|
MY.pm | File | 652 B | 0644 |
|
MakeMaker.pm | File | 91.59 KB | 0644 |
|
Manifest.pm | File | 22.52 KB | 0644 |
|
Mkbootstrap.pm | File | 3.11 KB | 0644 |
|
Mksymlists.pm | File | 10.5 KB | 0644 |
|
ParseXS.pm | File | 60.01 KB | 0644 |
|
ParseXS.pod | File | 3.74 KB | 0644 |
|
Typemaps.pm | File | 24.81 KB | 0644 |
|
testlib.pm | File | 891 B | 0644 |
|
xsubpp | File | 4.45 KB | 0755 |
|