X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=tools%2Flttng-gen-tp;h=1ff91464acc0a4441efa9a4a1a8a0ff6c5b7b8e3;hb=47eba1fd0b22821100f18893d1b7e88b12d9c99f;hp=2f468cbb79abde4fbf580208cc4728df91af548a;hpb=45f399e86471695f8fb0f55d31197b02b3197bf9;p=lttng-ust.git diff --git a/tools/lttng-gen-tp b/tools/lttng-gen-tp index 2f468cbb..1ff91464 100755 --- a/tools/lttng-gen-tp +++ b/tools/lttng-gen-tp @@ -61,7 +61,9 @@ extern "C"{{ def write(self): outputFile = open(self.outputFilename,"w") - includeGuard = self.outputFilename.upper().replace(".","_") + # Include guard macro will be created by uppercasing the filename and + # replacing all non alphanumeric characters with '_' + includeGuard = re.sub('[^0-9a-zA-Z]', '_', self.outputFilename.upper()) outputFile.write(HeaderFile.HEADER_TPL.format(providerName=self.template.domain, includeGuard = includeGuard, @@ -143,6 +145,8 @@ class ObjFile: cflags = "" command = cc + " -c " + cflags + " -I. -llttng-ust" + " -o " + self.outputFilename + " " + cFilename + if verbose: + print("Compile command: " + command) subprocess.call(command.split()) class TemplateFile: @@ -157,12 +161,16 @@ class TemplateFile: self.text = f.read() - #Remove # comments (from input and output file - removeComments = re.compile("#.*$",flags=re.MULTILINE) + #Remove # comments (from input and output file) but keep + # #include in the output file + removeComments = re.compile("#[^include].*$",flags=re.MULTILINE) self.text = removeComments.sub("",self.text) + # Remove #include directive from the parsed text + removePreprocess = re.compile("#.*$",flags=re.MULTILINE) + noPreprocess = removePreprocess.sub("", self.text) #Remove // comments removeLineComment = re.compile("\/\/.*$",flags=re.MULTILINE) - nolinecomment = removeLineComment.sub("",self.text) + nolinecomment = removeLineComment.sub("", noPreprocess) #Remove all spaces and lines cleantext = re.sub("\s*","",nolinecomment) #Remove multine C style comments @@ -182,6 +190,8 @@ class TemplateFile: if self.domain != domain: print "Warning: different domain provided (%s,%s)" % (self.domain, domain) +verbose=False + usage=""" lttng-gen-tp - Generate the LTTng-UST header and source based on a simple template @@ -204,7 +214,7 @@ def main(argv=None): try: try: - opts, args = getopt.gnu_getopt(argv[1:], "ho:a", ["help"]) + opts, args = getopt.gnu_getopt(argv[1:], "ho:av", ["help","verbose"]) except getopt.error, msg: raise Usage(msg) @@ -222,6 +232,9 @@ def main(argv=None): outputNames.append(a) if o in ("-a",""): all = True + if o in ("-v", "--verbose"): + global verbose + verbose = True try: if len(args) == 0: raise Usage("No template file given")