[Encode] 1.74 released -- final for 5.8.0-RC1
[p5sagit/p5-mst-13.2.git] / ext / Encode / JP / Makefile.PL
index 4c0fbd3..a3b19d4 100644 (file)
@@ -1,14 +1,32 @@
 use 5.7.2;
 use strict;
 use ExtUtils::MakeMaker;
+use strict;
 
 my %tables = (
              euc_jp_t   => ['euc-jp.ucm'],
               sjis_t     => ['shiftjis.ucm',
-                            'macJapan.ucm',
+                            'macJapanese.ucm',
                             'cp932.ucm'],
+             raw_t      => [
+                            qw(jis0201.ucm jis0208.ucm jis0212.ucm)
+                            ],
              );
 
+unless ($ENV{AGGREGATE_TABLES}){
+    my @ucm;
+    for my $k (keys %tables){
+       push @ucm, @{$tables{$k}};
+    }
+    %tables = ();
+    my $seq = 0;
+    for my $ucm (sort @ucm){
+       # 8.3 compliance !
+       my $t = sprintf ("%s_%02d_t", substr($ucm, 0, 2), $seq++);
+       $tables{$t} = [ $ucm ];
+    }
+}
+
 my $name = 'JP';
 
 WriteMakefile(
@@ -42,15 +60,19 @@ sub post_initialize
     $self->{'O_FILES'} = [sort keys %o];
     my @files = ("$name.xs");
     $self->{'C'} = ["$name.c"];
+    $self->{SOURCE} .= " $name.c"
+        if $^O eq 'MacOS' && $self->{SOURCE} !~ /\b$name\.c\b/;
     $self->{'H'} = [$self->catfile($self->updir,'Encode', 'encode.h')];
     my %xs;
     foreach my $table (keys %tables) {
        push (@{$self->{'C'}},"$table.c");
        # Do NOT add $table.h etc. to H_FILES unless we own up as to how they
        # get built.
-       foreach my $ext (qw($(OBJ_EXT) .c .h _def.h .fnm)) {
+       foreach my $ext (qw($(OBJ_EXT) .c .h .exh .fnm)) {
            push (@files,$table.$ext);
        }
+       $self->{SOURCE} .= " $table.c"
+           if $^O eq 'MacOS' && $self->{SOURCE} !~ /\b$table\.c\b/;
     }
     $self->{'XS'} = { "$name.xs" => "$name.c" };
     $self->{'clean'}{'FILES'} .= join(' ',@files);
@@ -92,7 +114,7 @@ BOOT:
 {
 END
     foreach my $table (keys %tables) {
-       print XS qq[#include "${table}_def.h"\n];
+       print XS qq[#include "${table}.exh"\n];
     }
     print XS "}\n";
     close(XS);
@@ -103,7 +125,7 @@ sub postamble
 {
     my $self = shift;
     my $dir  = $self->catdir($self->updir,'ucm');
-    my $str  = "# $name\$(OBJ_EXT) depends on .h and _def.h files not .c files - but all written by enc2xs\n";
+    my $str  = "# $name\$(OBJ_EXT) depends on .h and .exh files not .c files - but all written by enc2xs\n";
     $str    .= "$name.c : $name.xs ";
     foreach my $table (keys %tables)
     {
@@ -130,9 +152,11 @@ sub postamble
                $continuator = '';
            }
        }
-        $str .= $^O eq 'VMS' # In VMS quote to preserve case
-            ? qq{\n\t\$(PERL) $enc2xs -"Q" -o \$\@ -f $table.fnm\n\n}
-            : qq{\n\t\$(PERL) $enc2xs -Q -o \$\@ -f $table.fnm\n\n};
+       my $plib   = $self->{PERL_CORE} ? '"-I$(PERL_LIB)"' : '';
+       $plib .= " -MCross=$::Cross::platform" if defined $::Cross::platform;
+       my $ucopts = '-"Q"';
+       $str .=  
+           qq{\n\t\$(PERL) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n};
        open (FILELIST, ">$table.fnm")
            || die "Could not open $table.fnm: $!";
        foreach my $file (@{$tables{$table}})