our
$VERSION
=
'7.35_08'
;
$VERSION
=~
tr
/_//d;
our
@ISA
=
qw(ExtUtils::MM_Any ExtUtils::MM_Unix)
;
sub
init_dist {
my
(
$self
) =
@_
;
$self
->{TO_UNIX} ||=
<<'MAKE_TEXT';
$(NOECHO) $(TEST_F) tmp.zip && $(RM_F) tmp.zip; $(ZIP) -ll -mr tmp.zip $(DISTVNAME) && unzip -o tmp.zip && $(RM_F) tmp.zip
MAKE_TEXT
$self
->SUPER::init_dist;
}
sub
dlsyms {
my
(
$self
,
%attribs
) =
@_
;
if
(
$self
->{IMPORTS} && %{
$self
->{IMPORTS}}) {
-d
'tmp_imp'
or
mkdir
'tmp_imp'
, 0777 or
die
"Can't mkdir tmp_imp"
;
open
my
$imp
,
'>'
,
'tmpimp.imp'
or
die
"Can't open tmpimp.imp"
;
foreach
my
$name
(
sort
keys
%{
$self
->{IMPORTS}}) {
my
$exp
=
$self
->{IMPORTS}->{
$name
};
my
(
$lib
,
$id
) = (
$exp
=~ /(.*)\.(.*)/) or
die
"Malformed IMPORT `$exp'"
;
print
$imp
"$name $lib $id ?\n"
;
}
close
$imp
or
die
"Can't close tmpimp.imp"
;
system
"emximp -o tmpimp$Config::Config{lib_ext} tmpimp.imp"
and
die
"Cannot make import library: $!, \$?=$?"
;
eval
{
unlink
<tmp_imp/*>; 1 } or
system
"rm tmp_imp/*"
;
system
"cd tmp_imp; $Config::Config{ar} x ../tmpimp$Config::Config{lib_ext}"
and
die
"Cannot extract import objects: $!, \$?=$?"
;
}
return
''
if
$self
->{SKIPHASH}{
'dynamic'
};
$self
->xs_dlsyms_iterator(\
%attribs
);
}
sub
xs_dlsyms_ext {
'.def'
;
}
sub
xs_dlsyms_extra {
join
''
,
map
{
qq{, "$_" => "\$($_)"}
}
qw(VERSION DISTNAME INSTALLDIRS)
;
}
sub
static_lib_pure_cmd {
my
(
$self
) =
@_
;
my
$old
=
$self
->SUPER::static_lib_pure_cmd;
return
$old
unless
$self
->{IMPORTS} && %{
$self
->{IMPORTS}};
$old
.
<<'EOC';
$(AR) $(AR_STATIC_ARGS) "$@" tmp_imp/*
$(RANLIB) "$@"
EOC
}
sub
replace_manpage_separator {
my
(
$self
,
$man
) =
@_
;
$man
=~ s,/+,.,g;
$man
;
}
sub
maybe_command {
my
(
$self
,
$file
) =
@_
;
$file
=~ s,[/\\]+,/,g;
return
$file
if
-x
$file
&& ! -d _;
return
"$file.exe"
if
-x
"$file.exe"
&& ! -d _;
return
"$file.cmd"
if
-x
"$file.cmd"
&& ! -d _;
return
;
}
sub
init_linker {
my
$self
=
shift
;
$self
->{PERL_ARCHIVE} =
"\$(PERL_INC)/libperl\$(LIB_EXT)"
;
$self
->{PERL_ARCHIVEDEP} ||=
''
;
$self
->{PERL_ARCHIVE_AFTER} =
$OS2::is_aout
?
''
:
'$(PERL_INC)/libperl_override$(LIB_EXT)'
;
$self
->{EXPORT_LIST} =
'$(BASEEXT).def'
;
}
sub
os_flavor {
return
(
'OS/2'
);
}
sub
xs_static_lib_is_xs {
return
1;
}
1;