summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1998-11-27 15:00:42 +0000
committerGurusamy Sarathy <gsar@cpan.org>1998-11-27 15:00:42 +0000
commit3aa35033d09cb8971f2cf3a68ba9828dca8868e7 (patch)
tree40afafaa8720d25dccee87f70067b572621aaf62 /lib
parente93972868551f65a3c55f75eec9e71a0cd42d790 (diff)
downloadperl-3aa35033d09cb8971f2cf3a68ba9828dca8868e7.tar.gz
integrate changes#2304,2305,2306,2308 from maint-5.005
p4raw-link: @2308 on //depot/maint-5.005/perl: d9ff4e059542b05c512829c494eaa4d1a8c96869 p4raw-link: @2306 on //depot/maint-5.005/perl: 82bf2b55a275313af7da5198d3567127a2b619bb p4raw-link: @2305 on //depot/maint-5.005/perl: fa8a3fc69bb318b2e84481c2b7919cb81c822866 p4raw-link: @2304 on //depot/maint-5.005/perl: 566aa6395795ff6a5a86565ea7a90bf3211e26a1 p4raw-id: //depot/perl@2326 p4raw-integrated: from //depot/maint-5.005/perl@2325 'copy in' ext/DynaLoader/dl_mpeix.xs lib/ExtUtils/typemap (@1649..) installperl (@2134..) lib/ExtUtils/MM_VMS.pm lib/ExtUtils/MakeMaker.pm (@2154..) lib/ExtUtils/MM_Unix.pm (@2304..)
Diffstat (limited to 'lib')
-rw-r--r--lib/ExtUtils/MM_Unix.pm14
-rw-r--r--lib/ExtUtils/MM_VMS.pm13
-rw-r--r--lib/ExtUtils/MakeMaker.pm6
-rw-r--r--lib/ExtUtils/typemap30
4 files changed, 42 insertions, 21 deletions
diff --git a/lib/ExtUtils/MM_Unix.pm b/lib/ExtUtils/MM_Unix.pm
index ca6d575fea..d36741cb98 100644
--- a/lib/ExtUtils/MM_Unix.pm
+++ b/lib/ExtUtils/MM_Unix.pm
@@ -2749,10 +2749,13 @@ sub ppd {
push(@m, "\t\@\$(PERL) -e \"print qq{<SOFTPKG NAME=\\\"$self->{DISTNAME}\\\" VERSION=\\\"$pack_ver\\\">\\n}");
push(@m, ". qq{\\t<TITLE>$self->{DISTNAME}</TITLE>\\n}");
my $abstract = $self->{ABSTRACT};
+ $abstract =~ s/\n/\\n/sg;
$abstract =~ s/</&lt;/g;
$abstract =~ s/>/&gt;/g;
push(@m, ". qq{\\t<ABSTRACT>$abstract</ABSTRACT>\\n}");
my ($author) = $self->{AUTHOR};
+ $author =~ s/</&lt;/g;
+ $author =~ s/>/&gt;/g;
$author =~ s/@/\\@/g;
push(@m, ". qq{\\t<AUTHOR>$author</AUTHOR>\\n}");
push(@m, ". qq{\\t<IMPLEMENTATION>\\n}");
@@ -2892,13 +2895,18 @@ sub processPL {
return "" unless $self->{PL_FILES};
my(@m, $plfile);
foreach $plfile (sort keys %{$self->{PL_FILES}}) {
+ my $list = ref($self->{PL_FILES}->{$plfile})
+ ? $self->{PL_FILES}->{$plfile}
+ : [$self->{PL_FILES}->{$plfile}];
+ foreach $target (@$list) {
push @m, "
-all :: $self->{PL_FILES}->{$plfile}
+all :: $target
$self->{NOECHO}\$(NOOP)
-$self->{PL_FILES}->{$plfile} :: $plfile
- \$(PERL) -I\$(INST_ARCHLIB) -I\$(INST_LIB) -I\$(PERL_ARCHLIB) -I\$(PERL_LIB) $plfile
+$target :: $plfile
+ \$(PERL) -I\$(INST_ARCHLIB) -I\$(INST_LIB) -I\$(PERL_ARCHLIB) -I\$(PERL_LIB) $plfile $target
";
+ }
}
join "", @m;
}
diff --git a/lib/ExtUtils/MM_VMS.pm b/lib/ExtUtils/MM_VMS.pm
index e751c249f7..8f66a43d97 100644
--- a/lib/ExtUtils/MM_VMS.pm
+++ b/lib/ExtUtils/MM_VMS.pm
@@ -1534,15 +1534,20 @@ sub processPL {
return "" unless $self->{PL_FILES};
my(@m, $plfile);
foreach $plfile (sort keys %{$self->{PL_FILES}}) {
- my $vmsplfile = vmsify($plfile);
- my $vmsfile = vmsify($self->{PL_FILES}->{$plfile});
- push @m, "
+ my $list = ref($self->{PL_FILES}->{$plfile})
+ ? $self->{PL_FILES}->{$plfile}
+ : [$self->{PL_FILES}->{$plfile}];
+ foreach $target (@$list) {
+ my $vmsplfile = vmsify($plfile);
+ my $vmsfile = vmsify($target);
+ push @m, "
all :: $vmsfile
\$(NOECHO) \$(NOOP)
$vmsfile :: $vmsplfile
-",' $(PERL) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" '," $vmsplfile
+",' $(PERL) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" '," $vmsplfile $vmsfile
";
+ }
}
join "", @m;
}
diff --git a/lib/ExtUtils/MakeMaker.pm b/lib/ExtUtils/MakeMaker.pm
index 51fb62edf5..36afa91afe 100644
--- a/lib/ExtUtils/MakeMaker.pm
+++ b/lib/ExtUtils/MakeMaker.pm
@@ -1577,7 +1577,11 @@ and the basename of the file being the value. E.g.
{'foobar.PL' => 'foobar'}
The *.PL files are expected to produce output to the target files
-themselves.
+themselves. If multiple files can be generated from the same *.PL
+file then the value in the hash can be a reference to an array of
+target file names. E.g.
+
+ {'foobar.PL' => ['foobar1','foobar2']}
=item PM
diff --git a/lib/ExtUtils/typemap b/lib/ExtUtils/typemap
index 28fd99c00b..b1ec063dd7 100644
--- a/lib/ExtUtils/typemap
+++ b/lib/ExtUtils/typemap
@@ -1,12 +1,12 @@
# $Header$
# basic C types
int T_IV
-unsigned T_IV
-unsigned int T_IV
+unsigned T_UV
+unsigned int T_UV
long T_IV
-unsigned long T_IV
+unsigned long T_UV
short T_IV
-unsigned short T_IV
+unsigned short T_UV
char T_CHAR
unsigned char T_U_CHAR
char * T_PV
@@ -34,7 +34,7 @@ I16 T_IV
I8 T_IV
U32 T_U_LONG
U16 T_U_SHORT
-U8 T_IV
+U8 T_UV
Result T_U_CHAR
Boolean T_IV
double T_DOUBLE
@@ -73,6 +73,8 @@ T_CVREF
croak(\"$var is not of type ${ntype}\")
T_SYSRET
$var NOT IMPLEMENTED
+T_UV
+ $var = ($type)SvUV($arg)
T_IV
$var = ($type)SvIV($arg)
T_INT
@@ -82,19 +84,19 @@ T_ENUM
T_BOOL
$var = (int)SvIV($arg)
T_U_INT
- $var = (unsigned int)SvIV($arg)
+ $var = (unsigned int)SvUV($arg)
T_SHORT
$var = (short)SvIV($arg)
T_U_SHORT
- $var = (unsigned short)SvIV($arg)
+ $var = (unsigned short)SvUV($arg)
T_LONG
$var = (long)SvIV($arg)
T_U_LONG
- $var = (unsigned long)SvIV($arg)
+ $var = (unsigned long)SvUV($arg)
T_CHAR
$var = (char)*SvPV($arg,PL_na)
T_U_CHAR
- $var = (unsigned char)SvIV($arg)
+ $var = (unsigned char)SvUV($arg)
T_FLOAT
$var = (float)SvNV($arg)
T_NV
@@ -191,6 +193,8 @@ T_CVREF
$arg = newRV((SV*)$var);
T_IV
sv_setiv($arg, (IV)$var);
+T_UV
+ sv_setuv($arg, (UV)$var);
T_INT
sv_setiv($arg, (IV)$var);
T_SYSRET
@@ -205,19 +209,19 @@ T_ENUM
T_BOOL
$arg = boolSV($var);
T_U_INT
- sv_setiv($arg, (IV)$var);
+ sv_setuv($arg, (UV)$var);
T_SHORT
sv_setiv($arg, (IV)$var);
T_U_SHORT
- sv_setiv($arg, (IV)$var);
+ sv_setuv($arg, (UV)$var);
T_LONG
sv_setiv($arg, (IV)$var);
T_U_LONG
- sv_setiv($arg, (IV)$var);
+ sv_setuv($arg, (UV)$var);
T_CHAR
sv_setpvn($arg, (char *)&$var, 1);
T_U_CHAR
- sv_setiv($arg, (IV)$var);
+ sv_setuv($arg, (UV)$var);
T_FLOAT
sv_setnv($arg, (double)$var);
T_NV