support -a switch to append bytecode to an existing file and make
Gurusamy Sarathy [Fri, 3 Dec 1999 06:52:50 +0000 (06:52 +0000)]
perlcc use it (from Tom Hughes <tom@compton.nu>)

p4raw-id: //depot/perl@4631

ext/B/B/Bytecode.pm
utils/perlcc.PL

index 8764a0d..c085071 100644 (file)
@@ -705,6 +705,10 @@ sub compile {
            $arg ||= shift @options;
            open(OUT, ">$arg") or return "$arg: $!\n";
            binmode OUT;
+       } elsif ($opt eq "a") {
+           $arg ||= shift @options;
+           open(OUT, ">>$arg") or return "$arg: $!\n";
+           binmode OUT;
        } elsif ($opt eq "D") {
            $arg ||= shift @options;
            foreach $arg (split(//, $arg)) {
@@ -814,6 +818,10 @@ extra arguments, it saves the main program.
 
 Output to filename instead of STDOUT.
 
+=item B<-afilename>
+
+Append output to filename.
+
 =item B<-->
 
 Force end of options.
index a585580..a8c6ab4 100644 (file)
@@ -253,6 +253,7 @@ sub _createCode
 {
     my ( $backend, $generated_file, $file, $final_output ) = @_;
     my $return;
+    my $output_switch = "o";
 
     local($") = " -I";
 
@@ -264,6 +265,8 @@ sub _createCode
 
         print GENFILE "#!$^X\n" if @_ == 3;
         print GENFILE "use ByteLoader $ByteLoader::VERSION;\n";
+
+       $output_switch ="a";
     }
 
     close(GENFILE);
@@ -278,7 +281,7 @@ sub _createCode
         chomp $stash;
 
         _print( "$^X -I@INC -MO=$backend,$stash $file\n", 36);
-        $return =  _run("$^X -I@INC -MO=$backend,$stash,-o$generated_file $file", 9);
+        $return =  _run("$^X -I@INC -MO=$backend,$stash,-$output_switch$generated_file $file", 9);
         $return;
     }
     else                                           # compiling a shared object
@@ -286,7 +289,7 @@ sub _createCode
         _print( 
             "$^X -I@INC -MO=$backend,-m$final_output $file\n", 36);
         $return = 
-        _run("$^X -I@INC -MO=$backend,-m$final_output,-o$generated_file $file  ", 9);
+        _run("$^X -I@INC -MO=$backend,-m$final_output,-$output_switch$generated_file $file  ", 9);
         $return;
     }
 }