diff --git a/OpenVMS/genlinkopt.py b/OpenVMS/genlinkopt.py new file mode 100644 index 0000000000000000000000000000000000000000..d5e0c7ce8d58ba05819196ffd61084ac3d80e8c3_T3BlblZNUy9nZW5saW5rb3B0LnB5 --- /dev/null +++ b/OpenVMS/genlinkopt.py @@ -0,0 +1,50 @@ +# python genlinkopt.py ../ libcjson32asis.opt +import sys +import glob +import os + +mangleDB = {} + +fdi = os.open('CXX$DEMANGLER_DB.upper', os.O_RDONLY) +r = os.read(fdi, 512) +while (r): + mname = r[:31] + rname = r[31:-1] + mangleDB[rname] = [mname,] + r = os.read(fdi, 512) +os.close(fdi) + +fdi = os.open('CXX$DEMANGLER_DB.mixed', os.O_RDONLY) +r = os.read(fdi, 512) +while (r): + mname = r[:31] + rname = r[31:-1] + mangleDB[rname].append(mname) + r = os.read(fdi, 512) +os.close(fdi) + +fnlst = glob.glob(sys.argv[1]+'*.h') + +fo = open(sys.argv[2], 'w') + +print >>fo, """! LINK +! +GSMATCH=LEQUAL,3,0 +IDENTIFICATION="libcjson" +CASE_SENSITIVE=yes""" + +for fn in fnlst: + fi = open(fn) + print >>fo, '!',fn + for line in fi: + if line.startswith('CJSON_PUBLIC'): + ename = line.split(')')[1].split('(')[0].strip() +# mname = os.popen('cxxde/repo=[.ia64.CXX_REPOSITORY]/man "'+ename+'"').read()[:-1] + if ename in mangleDB: + mnameu, mnamem = mangleDB[ename] + else: + mnamem = ename + mnameu = ename.upper() + print >>fo, 'SYMBOL_VECTOR=(%s=PROCEDURE)' % mnamem + print >>fo, 'SYMBOL_VECTOR=(%s/%s=PROCEDURE)' % (mnameu, mnamem) +