# HG changeset patch
# User Jean-Francois Pieronne <jf.pieronne@laposte.net>
# Date 1548262257 -3600
#      Wed Jan 23 17:50:57 2019 +0100
# Branch OpenVMS
# Node ID d5e0c7ce8d58ba05819196ffd61084ac3d80e8c3
# Parent  44be7539779b978a4db117baf688b4e82612f771
genlinkopt.py initial version

diff --git a/OpenVMS/genlinkopt.py b/OpenVMS/genlinkopt.py
new file mode 100644
--- /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)
+