Test for the right signal should use the constant for that signal.
[p5sagit/p5-mst-13.2.git] / ext / Encode / Makefile.PL
index cd20547..58b307b 100644 (file)
@@ -2,14 +2,16 @@ use 5.007003;
 use ExtUtils::MakeMaker;
 
 # Just for sure :)
-unless($ENV{PERL_CORE}) {
-    $ENV{PERL_CORE} = 1 if ($^X =~ m{\bminiperl[^/\\\]>:]*$}o);
-}
+my %ARGV = map { split /=/; defined $_[1] or $_[1]=1; @_ } @ARGV;
+$ARGV{DEBUG} and warn "$_ => $ARGV{$_}\n" for keys  %ARGV;
+$ENV{PERL_CORE} ||= $ARGV{PERL_CORE};
 
 my %tables = 
     (
      def_t => ['ascii.ucm',
               '8859-1.ucm',
+              'null.ucm',
+              'ctrl.ucm',
               ]
      );
 
@@ -20,14 +22,9 @@ my @more_exe_files = qw(
                        unidump
                        );
 my @pmlibdirs = qw(lib Encode);
-for my $arg (@ARGV){
-    if ($arg eq "MORE_SCRIPTS"){
-       push @exe_files, @more_exe_files;
-    }
-    if ($arg eq "INSTALL_UCM"){
-       push @pmlibdirs, "ucm";
-    }
-}
+
+$ARGV{MORE_SCRIOPTS} and push @exe_files, @more_exe_files;
+$ARGV{INSTALL_UCM}   and push @pmlibdirs, "ucm";
 
 WriteMakefile(
              NAME              => "Encode",
@@ -42,6 +39,7 @@ WriteMakefile(
              MAN3PODS  => {},
              INC       => "-I./Encode",
              PMLIBDIRS => \@pmlibdirs,
+             INSTALLDIRS => 'perl',
              );
 
 package MY;
@@ -74,6 +72,8 @@ sub post_initialize
     {
        push (@files,$table.$ext);
     }
+    $self->{SOURCE} .= " $table.c"
+       if $^O eq 'MacOS' && $self->{SOURCE} !~ /\b$table\.c\b/;
 }
 $self->{'clean'}{'FILES'} .= join(' ',@files);
 return '';
@@ -83,8 +83,10 @@ sub postamble
 {
     my $self = shift;
     my $dir  = $self->catdir($self->curdir,'ucm');
-    my $str  = "# Encode\$(OBJ_EXT) depends on .h and .exh files not .c files - but all written by enc2xs\n";
-    $str  .= 'Encode$(OBJ_EXT) :';
+    my $str  = "# Encode\$(OBJ_EXT) does not depend on .c files directly\n";
+    $str  .= "# (except Encode.c), but on .h and .exh files written by enc2xs\n";
+    $str  .= $^O eq 'MacOS' ? 'Encode.c.{$(MACPERL_BUILD_EXT_STATIC)}.o :' : 'Encode$(OBJ_EXT) :';
+    $str  .= ' Encode.c';
     foreach my $table (keys %tables)
     {
        $str .= " $table.c";
@@ -109,6 +111,7 @@ sub postamble
            }
        }
        my $plib   = $self->{PERL_CORE} ? '"-I$(PERL_LIB)"' : '';
+       $plib .= " -MCross=$::Cross::platform" if defined $::Cross::platform;
        my $ucopts = '-"Q" -"O"';
        $str .=
            qq{\n\t\$(PERL) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n};