summaryrefslogtreecommitdiff
path: root/src
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
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')
-rw-r--r--src/mesa/glapi/glX_XML.py33
-rw-r--r--src/mesa/glapi/glX_proto_send.py10
-rw-r--r--src/mesa/glapi/glX_proto_size.py32
-rw-r--r--src/mesa/glapi/gl_XML.py47
4 files changed, 58 insertions, 64 deletions
diff --git a/src/mesa/glapi/glX_XML.py b/src/mesa/glapi/glX_XML.py
index 56a2113f05..9a34111efe 100644
--- a/src/mesa/glapi/glX_XML.py
+++ b/src/mesa/glapi/glX_XML.py
@@ -34,39 +34,6 @@ import license
import sys, getopt
-def printPure():
- print """# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
-# define PURE __attribute__((pure))
-# else
-# define PURE
-# endif"""
-
-def printFastcall():
- print """# if defined(__i386__) && defined(__GNUC__)
-# define FASTCALL __attribute__((fastcall))
-# else
-# define FASTCALL
-# endif"""
-
-def printVisibility(S, s):
- print """# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)
-# define %s __attribute__((visibility("%s")))
-# else
-# define %s
-# endif""" % (S, s, S)
-
-def printNoinline():
- print """# if defined(__GNUC__)
-# define NOINLINE __attribute__((noinline))
-# else
-# define NOINLINE
-# endif"""
-
-def printHaveAlias():
- print """# if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
-# define HAVE_ALIAS
-# endif"""
-
class glXItemFactory(gl_XML.glItemFactory):
"""Factory to create GLX protocol oriented objects derived from glItem."""
diff --git a/src/mesa/glapi/glX_proto_send.py b/src/mesa/glapi/glX_proto_send.py
index 146d662079..949a0c9433 100644
--- a/src/mesa/glapi/glX_proto_send.py
+++ b/src/mesa/glapi/glX_proto_send.py
@@ -126,8 +126,8 @@ class PrintGlxProtoStubs(glX_XML.GlxProto):
print ''
print '#define __GLX_PAD(n) (((n) + 3) & ~3)'
print ''
- glX_XML.printFastcall()
- glX_XML.printNoinline()
+ self.printFastcall()
+ self.printNoinline()
print ''
print '#if !defined __GNUC__ || __GNUC__ < 3'
print '# define __builtin_expect(x, y) x'
@@ -769,11 +769,7 @@ class PrintGlxProtoInit_h(glX_XML.GlxProto):
* \\author Ian Romanick <idr@us.ibm.com>
*/
"""
- glX_XML.printVisibility( "HIDDEN", "hidden" )
-
-
- def printRealFooter(self):
- print "# undef HIDDEN"
+ self.printVisibility( "HIDDEN", "hidden" )
def printFunction(self, f):
diff --git a/src/mesa/glapi/glX_proto_size.py b/src/mesa/glapi/glX_proto_size.py
index e8a137c5e1..3030e7462b 100644
--- a/src/mesa/glapi/glX_proto_size.py
+++ b/src/mesa/glapi/glX_proto_size.py
@@ -170,13 +170,13 @@ class PrintGlxSizeStubs_c(PrintGlxSizeStubs_common):
print '#include "indirect_size.h"'
print ''
- glX_XML.printHaveAlias()
+ self.printHaveAlias()
print ''
- glX_XML.printPure()
+ self.printPure()
print ''
- glX_XML.printFastcall()
+ self.printFastcall()
print ''
- glX_XML.printVisibility( "INTERNAL", "internal" )
+ self.printVisibility( "INTERNAL", "internal" )
print ''
print ''
print '#ifdef HAVE_ALIAS'
@@ -220,19 +220,13 @@ class PrintGlxSizeStubs_h(PrintGlxSizeStubs_common):
* \\author Ian Romanick <idr@us.ibm.com>
*/
"""
- glX_XML.printPure();
+ self.printPure();
print ''
- glX_XML.printFastcall();
+ self.printFastcall();
print ''
- glX_XML.printVisibility( "INTERNAL", "internal" );
+ self.printVisibility( "INTERNAL", "internal" );
print ''
- def printRealFooter(self):
- print ''
- print "# undef INTERNAL"
- print "# undef PURE"
- print "# undef FASTCALL"
-
def printFunction(self, f):
ef = self.glx_enum_functions[f.name]
@@ -250,16 +244,10 @@ class PrintGlxReqSize_h(glX_XML.GlxProto):
def printRealHeader(self):
- glX_XML.printVisibility("HIDDEN", "hidden")
- print ''
- glX_XML.printPure()
+ self.printVisibility("HIDDEN", "hidden")
print ''
-
-
- def printRealFooter(self):
+ self.printPure()
print ''
- print '# undef HIDDEN'
- print '# undef PURE'
def printFunction(self, f):
@@ -300,7 +288,7 @@ class PrintGlxReqSize_c(glX_XML.GlxProto):
print ''
print '#define __GLX_PAD(x) (((x) + 3) & ~3)'
print ''
- glX_XML.printHaveAlias()
+ self.printHaveAlias()
print ''
print '#ifdef HAVE_ALIAS'
print '# define ALIAS2(from,to) \\'
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.