plugger.py
changeset 137 187a4e2412e5
parent 135 ce787871e430
child 143 fd4a5c0cca2d
equal deleted inserted replaced
136:f49f586a0a43 137:187a4e2412e5
   971         
   971         
   972         # Generate main
   972         # Generate main
   973         locstrs = map(lambda x:"_".join(map(str,x)), [loc for loc,Cfiles,DoCalls in LocationCFilesAndCFLAGS if loc and DoCalls])
   973         locstrs = map(lambda x:"_".join(map(str,x)), [loc for loc,Cfiles,DoCalls in LocationCFilesAndCFLAGS if loc and DoCalls])
   974         plc_main = runtime.code("plc_common_main") % {
   974         plc_main = runtime.code("plc_common_main") % {
   975             "calls_prototypes":"\n".join(
   975             "calls_prototypes":"\n".join(
   976                ["int __init_%(s)s(int argc,char **argv);\nvoid __cleanup_%(s)s();\nvoid __retrive_%(s)s();\nvoid __publish_%(s)s();"%
   976                ["int __init_%(s)s(int argc,char **argv);\nvoid __cleanup_%(s)s();\nvoid __retrieve_%(s)s();\nvoid __publish_%(s)s();"%
   977                 {'s':locstr} for locstr in locstrs]),
   977                 {'s':locstr} for locstr in locstrs]),
   978             "retrive_calls":"    \n".join(["__retrive_%(s)s();"%{'s':locstr} for locstr in locstrs]),
   978             "retrieve_calls":"\n    ".join(["__retrieve_%(s)s();"%{'s':locstr} for locstr in locstrs]),
   979             "publish_calls":"    \n".join(["__publish_%(s)s();"%{'s':locstr} for locstr in locstrs]),
   979             "publish_calls":"\n    ".join(["__publish_%(s)s();"%{'s':locstr} for locstr in locstrs]),
   980             "init_calls":"    \n".join(["init_level++; if(res = __init_%(s)s(argc,argv)) return res;"%{'s':locstr} for locstr in locstrs]),
   980             "init_calls":"\n    ".join(["init_level++; if(res = __init_%(s)s(argc,argv)) return res;"%{'s':locstr} for locstr in locstrs]),
   981             "cleanup_calls":"    \n".join(["if(init_level-- > 0) __cleanup_%(s)s();"%{'s':locstr} for locstr in locstrs])}
   981             "cleanup_calls":"\n    ".join(["if(init_level-- > 0) __cleanup_%(s)s();"%{'s':locstr} for locstr in locstrs])}
   982         target_name = self.BeremizRoot.TargetType.content["name"]
   982         target_name = self.BeremizRoot.TargetType.content["name"]
   983         plc_main += runtime.code("plc_%s_main"%target_name)
   983         plc_main += runtime.code("plc_%s_main"%target_name)
   984 
   984 
   985         main_path = os.path.join(buildpath, "main.c" )
   985         main_path = os.path.join(buildpath, "main.c" )
   986         f = open(main_path,'w')
   986         f = open(main_path,'w')