summaryrefslogtreecommitdiffstats
path: root/libxml2/build_glob.py
diff options
context:
space:
mode:
Diffstat (limited to 'libxml2/build_glob.py')
-rwxr-xr-xlibxml2/build_glob.py122
1 files changed, 0 insertions, 122 deletions
diff --git a/libxml2/build_glob.py b/libxml2/build_glob.py
deleted file mode 100755
index 8855ec7..0000000
--- a/libxml2/build_glob.py
+++ /dev/null
@@ -1,122 +0,0 @@
-#! /usr/bin/env python
-###
-#
-# build_glob.py : Build the global_functions.h and global_functions.c
-# files which are required to implement the user
-# interface to global variables now that thread specific
-# data (TSD) is used to emulate global state.
-#
-# See Copyright for the status of this software.
-# Gary.Pennington@sun.com
-###
-import os, string
-
-class globvar:
- def __init__(self, type, name):
- self.type=type
- self.name=name
-
-def striplinesep(line):
- while line and line[-1] in ('\r','\n'):
- line = line[:-1]
- return line
-
-def writeline(file, line=None):
- if line:
- file.write(line)
- file.write("\n")
-
-if __name__ == "__main__":
- globals={}
- global_data=open("global.data").readlines()
- global_code=open("globals.c").readlines()
- global_hdr=open("include/libxml/globals.h").readlines()
- global_functions_hdr=open("include/libxml/globals.h", "w+")
- global_functions_impl=open("globals.c", "w+")
-
- #
- # Rebuild the beginning of the file up to the
- # Automatically generated string
- #
- for line in global_hdr:
- line = striplinesep(line)
- if line == " * Automatically generated by build_glob.py.":
- break
- writeline(global_functions_hdr, line)
-
- writeline(global_functions_hdr, " * Automatically generated by build_glob.py.")
- writeline(global_functions_hdr, " * Do not modify the previous line.")
- writeline(global_functions_hdr, " */")
- writeline(global_functions_hdr)
-
- for line in global_code:
- line = striplinesep(line)
- if line == " * Automatically generated by build_glob.py.":
- break
- writeline(global_functions_impl, line)
-
- writeline(global_functions_impl, " * Automatically generated by build_glob.py.")
- writeline(global_functions_impl, " * Do not modify the previous line.")
- writeline(global_functions_impl, " */")
- writeline(global_functions_impl)
-
- # Now process the data and write it to the appropriate output file
- for line in global_data:
- if line[0]=='#':
- continue
- line = striplinesep(line)
- fields = string.split(line, ",")
- # Update the header file
- writeline(global_functions_hdr)
- global_functions_hdr.write("extern "+fields[0]+" *")
- if fields[2]:
- global_functions_hdr.write("(*")
- global_functions_hdr.write("__"+fields[1]+"(void)")
- if fields[2]:
- global_functions_hdr.write(")"+fields[2])
- writeline(global_functions_hdr,";")
- writeline(global_functions_hdr, "#ifdef LIBXML_THREAD_ENABLED")
- writeline(global_functions_hdr,"#define "+fields[1]+" \\")
- writeline(global_functions_hdr,"(*(__"+fields[1]+"()))")
- writeline(global_functions_hdr,"#else")
- if fields[2]:
- writeline(global_functions_hdr,"LIBXML_DLL_IMPORT extern "+fields[0]+" "+fields[1]+fields[2]+";")
- else:
- writeline(global_functions_hdr,"LIBXML_DLL_IMPORT extern "+fields[0]+" "+fields[1]+";")
- writeline(global_functions_hdr,"#endif")
- # set/get for per-thread global defaults
- if fields[3]:
- writeline(global_functions_hdr,fields[0]+" "+fields[1][:3]+"ThrDef"+fields[1][3:]+"("+fields[0]+" v);")
- # Update the implementation file
- writeline(global_functions_impl)
-# writeline(global_functions_impl, "extern "+fields[0]+" "+fields[1]+";")
- writeline(global_functions_impl, "#undef\t"+fields[1])
- writeline(global_functions_impl, fields[0]+" *")
- if fields[2]:
- global_functions_impl.write("(*")
- global_functions_impl.write("__"+fields[1]+"(void)")
- if fields[2]:
- writeline(global_functions_impl, ")[]")
- writeline(global_functions_impl, " {")
- writeline(global_functions_impl, " if (IS_MAIN_THREAD)")
- writeline(global_functions_impl, "\treturn (&"+fields[1]+");")
- writeline(global_functions_impl, " else")
- writeline(global_functions_impl, "\treturn (&xmlGetGlobalState()->"+fields[1]+");")
- writeline(global_functions_impl, "}")
- # set/get for per-thread global defaults
- if fields[3]:
- writeline(global_functions_impl,fields[0]+" "+fields[1][:3]+"ThrDef"+fields[1][3:]+"("+fields[0]+" v) {")
- writeline(global_functions_impl," "+fields[0]+" ret;");
- writeline(global_functions_impl," xmlMutexLock(xmlThrDefMutex);")
- writeline(global_functions_impl," ret = "+fields[1][:3]+fields[1][3:]+"ThrDef;")
- writeline(global_functions_impl," "+fields[1][:3]+fields[1][3:]+"ThrDef = v;")
- writeline(global_functions_impl," xmlMutexUnlock(xmlThrDefMutex);")
- writeline(global_functions_impl," return ret;")
- writeline(global_functions_impl,"}")
- # Terminate the header file with appropriate boilerplate
- writeline(global_functions_hdr)
- writeline(global_functions_hdr, "#ifdef __cplusplus")
- writeline(global_functions_hdr, "}")
- writeline(global_functions_hdr, "#endif")
- writeline(global_functions_hdr)
- writeline(global_functions_hdr, "#endif /* __XML_GLOBALS_H */")