Bug #585 ยป 0001-Fix-make-lttng-gen-tp-support-python3.patch
tools/lttng-gen-tp | ||
---|---|---|
# with this program; if not, write to the Free Software Foundation, Inc.,
|
||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||
from __future__ import print_function
|
||
import sys
|
||
import getopt
|
||
import re
|
||
... | ... | |
self.template = template
|
||
def _detectCC(self):
|
||
cc = ""
|
||
if os.environ.has_key('CC'):
|
||
if 'CC' in os.environ:
|
||
cc = os.environ['CC']
|
||
try:
|
||
subprocess.call(cc,
|
||
stdout=subprocess.PIPE,
|
||
stderr=subprocess.PIPE)
|
||
except OSError, msg:
|
||
print "Invalid CC environment variable"
|
||
except OSError as msg:
|
||
print("Invalid CC environment variable")
|
||
cc = ""
|
||
else:
|
||
... | ... | |
subprocess.call("cc",
|
||
stdout=subprocess.PIPE,
|
||
stderr=subprocess.PIPE)
|
||
except OSError, msg:
|
||
except OSError as msg:
|
||
useCC = False
|
||
if useCC:
|
||
cc = "cc"
|
||
... | ... | |
subprocess.call("gcc",
|
||
stdout=subprocess.PIPE,
|
||
stderr=subprocess.PIPE)
|
||
except OSError, msg:
|
||
except OSError as msg:
|
||
useGCC = False
|
||
if useGCC:
|
||
cc = "gcc"
|
||
... | ... | |
cc = self._detectCC()
|
||
if cc == "":
|
||
raise RuntimeError("No C Compiler detected")
|
||
if os.environ.has_key('CFLAGS'):
|
||
if 'CFLAGS' in os.environ:
|
||
cflags = os.environ['CFLAGS']
|
||
else:
|
||
cflags = ""
|
||
... | ... | |
self.domain = domain
|
||
else:
|
||
if self.domain != domain:
|
||
print "Warning: different domain provided (%s,%s)" % (self.domain, domain)
|
||
print("Warning: different domain provided (%s,%s)" % (self.domain, domain))
|
||
verbose=False
|
||
... | ... | |
try:
|
||
try:
|
||
opts, args = getopt.gnu_getopt(argv[1:], "ho:av", ["help","verbose"])
|
||
except getopt.error, msg:
|
||
except getopt.error as msg:
|
||
raise Usage(msg)
|
||
except Usage, err:
|
||
print >>sys.stderr, err.msg
|
||
print >>sys.stderr, "for help use --help"
|
||
except Usage as err:
|
||
print(err.msg, file=sys.stderr)
|
||
print("for help use --help", file=sys.stderr)
|
||
return 2
|
||
outputNames = []
|
||
for o, a in opts:
|
||
if o in ("-h", "--help"):
|
||
print usage
|
||
print(usage)
|
||
return(0)
|
||
if o in ("-o",""):
|
||
outputNames.append(a)
|
||
... | ... | |
if len(args) == 0:
|
||
raise Usage("No template file given")
|
||
except Usage, err:
|
||
print >>sys.stderr, err.msg
|
||
print >>sys.stderr, "for help use --help"
|
||
except Usage as err:
|
||
print(err.msg, file=sys.stderr)
|
||
print("for help use --help", file=sys.stderr)
|
||
return 2
|
||
doCFile = None
|
||
... | ... | |
if len(outputNames) > 0:
|
||
if len(args) > 1:
|
||
print "Cannot process more than one input if you specify an output"
|
||
print("Cannot process more than one input if you specify an output")
|
||
return(3)
|
||
for outputName in outputNames:
|
||
... | ... | |
doObj = True
|
||
objFilename = outputName
|
||
else:
|
||
print "output file type unsupported"
|
||
print("output file type unsupported")
|
||
return(4)
|
||
else:
|
||
doHeader = True
|
||
... | ... | |
# process arguments
|
||
for arg in args:
|
||
if arg[-3:] != ".tp":
|
||
print arg + " does not end in .tp. Skipping."
|
||
print(arg + " does not end in .tp. Skipping.")
|
||
continue
|
||
tpl = None
|
||
try:
|
||
tpl = TemplateFile(arg)
|
||
except IOError as args:
|
||
print "Cannot read input file " + args.filename + " " + args.strerror
|
||
print("Cannot read input file " + args.filename + " " + args.strerror)
|
||
return -1
|
||
try:
|
||
if doHeader:
|
||
... | ... | |
dotobj = ObjFile(curFilename, tpl)
|
||
dotobj.write()
|
||
except IOError as args:
|
||
print "Cannot write output file " + args.filename + " " + args.strerror
|
||
print("Cannot write output file " + args.filename + " " + args.strerror)
|
||
return -1
|
||
|
||
if __name__ == "__main__":
|
||
sys.exit(main())
|