diff src/parallel_execution/generate_stub.pl @ 254:edb3aff688d0

fix generator CLI
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 27 Jan 2017 10:10:09 +0900
parents ebc13549394c
children 79bbe2c63fb0
line wrap: on
line diff
--- a/src/parallel_execution/generate_stub.pl	Thu Jan 26 19:52:08 2017 +0900
+++ b/src/parallel_execution/generate_stub.pl	Fri Jan 27 10:10:09 2017 +0900
@@ -1,6 +1,7 @@
 #!/usr/bin/perl
 
 use strict;
+use Getopt::Std;
 
 # interface.cbc
 # typedef struct Worker {
@@ -13,9 +14,10 @@
 #         struct Queue* tasks;
 #     } Worker;
 
-#while (<*.cbc>) {
-while (<SingleLinkedStack.cbc>) {
-    my $fn = $_;
+our($opt_o,$opt_h);
+getopts('o:h');
+
+for my $fn (@ARGV) { 
     &getDataGear($fn);
     &generateDataGear($fn);
 }
@@ -102,20 +104,28 @@
 
 sub generateDataGear {
     my ($filename) = @_;
-    my $fn1 = $filename;
-    $fn1 =~ s/\.cbc/.c/;
     open my $in,"<",$filename or die("can't open $filename $!");
-    my $i = 1;
-    my $fn = $fn1;
-    while ( -f $fn) {
-        $fn = "$fn1.$i";
-        $i++;
+
+    my $fn;
+    if ($opt_o) {
+       $fn = $opt_o;
+    } else {
+        my $fn1 = $filename;
+        $fn1 =~ s/\.cbc/.c/;
+        my $i = 1;
+        $fn = $fn1;
+        while ( -f $fn) {
+            $fn = "$fn1.$i";
+            $i++;
+        }
     }
     open my $fd,">",$fn or die("can't write $fn $!");
+
     my $prevCodeGearName;
     my $inTypedef = 0;
     my %stub;
     my $codeGearName;
+
     while (<$in>) {
         if (! $inTypedef) {
             if (/^typedef struct (\w+) {/) {