65 lines
2.0 KiB
Python
65 lines
2.0 KiB
Python
import sys
|
|
import os.path
|
|
import compileall
|
|
path=os.path.join(sys.exec_prefix,"include","python%s"%sys.version[:3])
|
|
#print "headers at ",repr(path)
|
|
#-lpython2.3 -lm -L/usr/lib/python2.3/config
|
|
args="-lpython%s -lm -L%s"%(sys.version[:3],os.path.join(sys.exec_prefix,"lib","python%s"%sys.version[:3],"config"))
|
|
print " linux args are"
|
|
print args,"-I%s"%path
|
|
|
|
path=os.path.join(sys.exec_prefix,"include")
|
|
args="-lpython%s -lm -L%s"%(sys.version[:3],os.path.join(sys.exec_prefix,"lib","config"))#,"python%s"%sys.version[:3]
|
|
print "\n windows args are"
|
|
print args,"-I%s"%path
|
|
|
|
ext=False
|
|
#see if we're on 64bit.
|
|
with open("./includes/defines.h") as fid:
|
|
for line in fid:
|
|
if(line.startswith("#define") and line.count("PYEXT")>0):
|
|
print "using external console.py"
|
|
ext=True
|
|
|
|
if(ext):
|
|
print "external"
|
|
with open("./src/python/tpt_console.py") as fid:
|
|
consolepy=fid.read()
|
|
script="""
|
|
import tempfile,os.path,sys
|
|
dir=tempfile.gettempdir()
|
|
sys.path.append(dir)
|
|
tmp=%s
|
|
print "making console.py @ %%s"%%os.path.join(dir,"tpt_console.py")
|
|
with open(os.path.join(dir,"tpt_console.py"),"w") as fid:
|
|
fid.write(tmp)
|
|
"""%repr(consolepy)
|
|
tmp=[hex(ord(char)) for char in script]
|
|
out=["unsigned char tpt_console_py[] = {",','.join(tmp),"};"]
|
|
with open("./includes/pyconsole.h","w") as fid:
|
|
fid.write(''.join(out))
|
|
else:
|
|
print "internal"
|
|
#unsigned char tpt_console_pyc[] = { 0x1B, 0x57};
|
|
lst=[]
|
|
compileall.compile_dir("./src/python", force=1)
|
|
|
|
print "generating pyconsole.h"
|
|
|
|
fname="./src/python/tpt_console.pyc"
|
|
try:
|
|
fid=open(fname,"r")
|
|
except IOError:
|
|
fname="./src/python/tpt_console.pyo"
|
|
finally:
|
|
fid.close()
|
|
|
|
with open(fname,"r") as fid:
|
|
for char in fid.read():
|
|
lst.append(hex(ord(char)))
|
|
tmp=",".join(lst)
|
|
out=''.join(["#include <Python.h>\nunsigned char tpt_console_pyc[] = {",tmp,"};"])
|
|
with open("./includes/pyconsole.h","w") as fid:
|
|
fid.write(out)
|
|
print "done"
|
|
|