Re: [PATCH regexec.c] lookahead for REF, MINMOD, PLUS, CURLY*
[p5sagit/p5-mst-13.2.git] / ext / Encode / Makefile.PL
index b9f1a40..bf6baee 100644 (file)
@@ -1,16 +1,16 @@
 use ExtUtils::MakeMaker;
 
-my %tables = (iso8859 => ['ascii.enc', 'cp1250.enc'],
-              EBCDIC  => ['cp1047.enc','cp37.enc','posix-bc.enc'],
-              Symbols => ['symbol.enc','dingbats.enc'],
+my %tables = (8859 => ['ascii.ucm', 'cp1250.ucm', 'koi8-r.ucm' ],
+              EBCDIC  => ['cp1047.ucm','cp37.ucm','posix-bc.ucm'],
+              Symbols => ['symbol.ucm','dingbats.ucm'],
              );
 
 opendir(ENC,'Encode');
 while (defined(my $file = readdir(ENC)))
  {
-  if ($file =~ /iso8859.*\.enc/)
+  if ($file =~ /8859.*\.ucm/)
    {
-    push(@{$tables{iso8859}},$file);
+    push(@{$tables{8859}},$file);
    }
  }
 closedir(ENC);
@@ -34,11 +34,27 @@ package MY;
 sub post_initialize
 {
  my ($self) = @_;
- push(@{$self->{'O_FILES'}},map("$_\$(OBJ_EXT)",keys %tables));
+ my %o;
+ # Find existing O_FILES
+ 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;
+  }
+ # Trick case-blind filesystems.
+ delete $o{'encode'.$x};
+ $o{'Encode'.$x} = 1;
+ # 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);
     }
@@ -51,9 +67,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";
@@ -61,17 +76,29 @@ sub postamble
  $str .= "\n\n";
  foreach my $table (keys %tables)
   {
-   $str .= "$table.c : compile \$(MAKEFILE)";
+   my $numlines = 1;
+   my $lengthsofar = length($str);
+   my $continuator = '';
+   $str .= "$table.c : compile Makefile.PL";
    foreach my $file (@{$tables{$table}})
     {
-     $str .= ' '.$self->catfile($dir,$file);
+     $str .= $continuator.' '.$self->catfile($dir,$file);
+     if ( length($str)-$lengthsofar > 128*$numlines )
+      {
+       $continuator .= " \\\n\t";
+       $numlines++;
+      } else {
+       $continuator = '';
+      }
     }
-   $str .= "\n\t\$(PERL) compile \$\@";
+   $str .= "\n\t\$(PERL) compile -o \$\@ -f $table.fnm\n\n";
+   open (FILELIST, ">$table.fnm")
+       || die "Could not open $table.fnm: $!";
    foreach my $file (@{$tables{$table}})
     {
-     $str .= ' '.$self->catfile($dir,$file);
+     print FILELIST $self->catfile($dir,$file) . "\n";
     }
-   $str .= "\n\n";
+   close(FILELIST);
   }
  return $str;
 }