summaryrefslogtreecommitdiff
path: root/src/mesa/glapi/gl_XML.py
diff options
context:
space:
mode:
authorIan Romanick <idr@us.ibm.com>2005-02-01 00:28:47 +0000
committerIan Romanick <idr@us.ibm.com>2005-02-01 00:28:47 +0000
commitc2803587b6f2533514e1cfa9793d0a448e9c2c85 (patch)
tree19447b3f3e222b1280b5e7e9088b17ec3eafb959 /src/mesa/glapi/gl_XML.py
parentba09c19ed65051cd9244c8a5ff380d08e7db1aed (diff)
Small refactor. Move several utility functions from glX_XML.py to
FilterGLAPISpecBase (in gl_XML.py). When these functions are used to emit common #define lines, the will automatically be undefined in FilterGLAPISpecBase::printFooter if header_tag is set (i.e., the file is a header file). These changes do not modify the generated code.
Diffstat (limited to 'src/mesa/glapi/gl_XML.py')
-rw-r--r--src/mesa/glapi/gl_XML.py47
1 files changed, 45 insertions, 2 deletions
diff --git a/src/mesa/glapi/gl_XML.py b/src/mesa/glapi/gl_XML.py
index 086133cdf1..1771975e84 100644
--- a/src/mesa/glapi/gl_XML.py
+++ b/src/mesa/glapi/gl_XML.py
@@ -509,6 +509,7 @@ class FilterGLAPISpecBase(saxutils.XMLFilterBase):
self.xref = {}
self.factory = glItemFactory()
self.header_tag = None
+ self.undef_list = []
def find_type(self,type_name):
@@ -558,8 +559,12 @@ class FilterGLAPISpecBase(saxutils.XMLFilterBase):
self.printFunctions()
self.printRealFooter()
if self.header_tag:
- print ''
- print '#endif /* !defined( %s ) */' % (self.header_tag)
+ if self.undef_list:
+ print ''
+ for u in self.undef_list:
+ print "# undef %s" % (u)
+ print ''
+ print '#endif /* !defined( %s ) */' % (self.header_tag)
def get_category_define(self):
@@ -625,6 +630,44 @@ class FilterGLAPISpecBase(saxutils.XMLFilterBase):
return
+ def printPure(self):
+ self.undef_list.append("PURE")
+ print """# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
+# define PURE __attribute__((pure))
+# else
+# define PURE
+# endif"""
+
+ def printFastcall(self):
+ self.undef_list.append("FASTCALL")
+ print """# if defined(__i386__) && defined(__GNUC__)
+# define FASTCALL __attribute__((fastcall))
+# else
+# define FASTCALL
+# endif"""
+
+ def printVisibility(self, S, s):
+ self.undef_list.append(S)
+ print """# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)
+# define %s __attribute__((visibility("%s")))
+# else
+# define %s
+# endif""" % (S, s, S)
+
+ def printNoinline(self):
+ self.undef_list.append("NOINLINE")
+ print """# if defined(__GNUC__)
+# define NOINLINE __attribute__((noinline))
+# else
+# define NOINLINE
+# endif"""
+
+ def printHaveAlias(self):
+ self.undef_list.append("HAVE_ALIAS")
+ print """# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
+# define HAVE_ALIAS
+# endif"""
+
def printFunction(self,offset):
"""Print a single function.