Once more try to get the PPPort Makefile right.
Jarkko Hietaniemi [Wed, 2 Jan 2002 00:35:15 +0000 (00:35 +0000)]
p4raw-id: //depot/perl@14009

ext/Devel/PPPort/Makefile.PL
ext/Devel/PPPort/ppport_h.PL

index b7fb31c..674ee4c 100644 (file)
@@ -10,22 +10,16 @@ WriteMakefile(
     OBJECT     => 'PPPort$(OBJ_EXT) module2$(OBJ_EXT) module3$(OBJ_EXT)',
     XSPROTOARG => '-noprototypes',
     'dist'     => { COMPRESS=>"gzip", SUFFIX=>"gz" },
-    'clean'    => { FILES => 'ppport.h'},
+    'clean'    => { FILES => [qw(ppport.h ppport_h)]},
 );
 
 sub MY::postamble {
+    return <<"EOM";
 
-    my $pmfile = 'PPPort.pm' ;
+ppport.h:      ppport_h
+       \$(TOUCH) ppport_h
 
-    my $retval = <<"EOM";
-
-ppport.h:      ppport_h.PL
-       \$(PERL) "-I\$(PERL_ARCHLIB)" "-I\$(PERL_LIB)" ppport_h.PL
-
-PPPort.xs module2.\$(OBJ_EXT) module3.\$(OBJ_EXT) : ppport.h
-       -\$(TOUCH) \$@
+PPPort.xs module2\$(OBJ_EXT) module3\$(OBJ_EXT): ppport.h
 
 EOM
-    return $retval;
 }
index 4031981..5a695d2 100644 (file)
@@ -1,5 +1,17 @@
-my $pmfile = 'PPPort.pm';
 package Devel::PPPort; 
 sub bootstrap {}; 
-require qq[$pmfile]; 
-WriteFile(qq[ppport.h]);
+require "PPPort.pm";
+WriteFile("ppport.tmp");
+{
+    local $/;
+    my $old = '';
+    my $new = '';
+    $old = <FH> if open(FH, "ppport.h");       close FH;
+    $new = <FH> if open(FH, "ppport.tmp");     close FH;
+    if ($old ne $new) {
+       unlink("ppport.h");
+       rename("ppport.tmp", "ppport.h");
+    }
+    unlink("ppport.tmp");
+}
+