Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix make dist
[simgrid.git] / examples / gras_stub_generator
index 0914718..ff8a6b6 100755 (executable)
@@ -48,6 +48,8 @@ $warn
 #include <msg.h>
 #include <gras.h>
 
+char *gras_log=NULL;
+    
 EOF
  ;
 foreach (keys %process) { print OUT "int $_(int argc,char *argv[]);\n";        }
@@ -57,11 +59,19 @@ print OUT "\n$warn\n";
 
 foreach (keys %process) {
     print OUT<<EOF
-int launch_$_(int argc, char *argv[]) {
-  if (gras_process_init()) exit(1);
+int launch_$_(int argc, char **argv) {
+  char **myargv=argv;
+  int i;
+    
+  if (gras_log) {
+    myargv=malloc((argc+1) * sizeof(char**));
+    for (i=0; i<argc; i++)
+      myargv[i] = argv[i];
+    myargv[argc++] = gras_log;
+  }
   $_(argc,argv);
-  if (gras_process_exit()) exit(1);
-
+  if (myargv != argv)
+    free(myargv);
   return 0;
 }
 
@@ -72,13 +82,27 @@ print OUT "\n$warn\n";
 
 print OUT <<EOF
 int main (int argc,char *argv[]) {
+  int i,j;
+
+  /** Save the gras-log argument */
+  for (i=1; i<argc; i++) {
+    if (!strncmp(argv[i],"--gras-log=",strlen("--gras-log="))) {
+      gras_log = argv[i];
+      for (j=i+1; j<argc; j++) {
+       argv[j-1] = argv[j];
+      } 
+      argv[j-1] = NULL;
+      argc--;
+      i--; /* compensate effect of next loop incrementation */
+    }
+  }
 
   if (argc != 3) {
-    fprintf(stderr, "Usage: %s platform_file application_description.txt\\n",argv[0]);
+    fprintf(stderr, "Usage: %s platform_file application_description.txt [--gras-log=...]\\n",argv[0]);
     exit(1);
   }
 
-  /*  Simulation setting */
+  /*  Simulation setup */
   MSG_global_init();
   MSG_set_verbosity(MSG_SILENT);
   MSG_set_channel_number(GRAS_MAX_CHANNEL);
@@ -123,11 +147,7 @@ $warn
 int main(int argc, char *argv[]){
   int errcode;
 
-  gras_init(&argc,argv);
-  gras_process_init();
   errcode=$pname(argc,argv);
-  gras_process_exit();
-  gras_exit();
  
   return errcode;
 }