From: Nick Ing-Simmons Date: Sat, 13 Jan 2001 11:31:55 +0000 (+0000) Subject: VMS friendly patch to Encode compile process X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=c6fdb90a0a27837f63bec24b004f5841b85501e6;p=p5sagit%2Fp5-mst-13.2.git VMS friendly patch to Encode compile process p4raw-id: //depot/perlio@8433 --- diff --git a/ext/Encode/Makefile.PL b/ext/Encode/Makefile.PL index 4b1ec95..c86dacf 100644 --- a/ext/Encode/Makefile.PL +++ b/ext/Encode/Makefile.PL @@ -39,19 +39,19 @@ sub post_initialize foreach my $f (@{$self->{'O_FILES'}}) { $o{$f} = 1; - } + } my $x = $self->{'OBJ_EXT'}; # Add the table O_FILES foreach my $e (keys %tables) { $o{$e.$x} = 1; - } - # Reset the variable + } + # Reset the variable $self->{'O_FILES'} = [sort keys %o]; my @files; foreach my $table (keys %tables) { - foreach my $ext (qw($(OBJ_EXT) .c .h .def)) + foreach my $ext (qw($(OBJ_EXT) .c .h .def .fnm)) { push (@files,$table.$ext); } @@ -64,9 +64,8 @@ sub postamble { my $self = shift; my $dir = $self->catdir($self->curdir,'Encode'); - my $str = "# Encode$(OBJ_EXT) depends on .h and .def files not .c files - but all written by compile\n"; + my $str = "# Encode\$(OBJ_EXT) depends on .h and .def files not .c files - but all written by compile\n"; $str .= 'Encode$(OBJ_EXT) :'; - my @rules; foreach my $table (keys %tables) { $str .= " $table.c"; @@ -89,22 +88,14 @@ sub postamble $continuator = ''; } } - $numlines = 1; - $lengthsofar = length($str); - $continuator = ''; - $str .= "\n\t\$(PERL) compile \$\@"; + $str .= "\n\t\$(PERL) compile \$\@ $table.fnm\n\n"; + open (FILELIST, ">$table.fnm") + || die "Could not open $table.fnm: $!"; foreach my $file (@{$tables{$table}}) { - $str .= $continuator.' '.$self->catfile($dir,$file); - if ( length($str)-$lengthsofar > 128*$numlines ) - { - $continuator .= "\n\t\$(PERL) compile \$\@"; - $numlines++; - } else { - $continuator = ''; - } + print FILELIST $self->catfile($dir,$file) . "\n"; } - $str .= "\n\n"; + close(FILELIST); } return $str; } diff --git a/ext/Encode/compile b/ext/Encode/compile index b890a04..03cea19 100755 --- a/ext/Encode/compile +++ b/ext/Encode/compile @@ -92,6 +92,12 @@ elsif ($cname =~ /\.ucm$/) $doUcm = 1; } +# 2nd argument is file containing list of filenames +my $flist = shift(@ARGV); +open(FLIST,$flist) || die "Cannot open $flist:$!"; +chomp(my @encfiles = ); +close(FLIST); + my %encoding; my %strings; @@ -109,7 +115,7 @@ sub cmp_name return $a cmp $b; } -foreach my $enc (sort cmp_name @ARGV) +foreach my $enc (sort cmp_name @encfiles) { my ($name,$sfx) = $enc =~ /^.*?([\w-]+)\.(enc|ucm)$/; if (open(E,$enc))