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."""
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'
* \\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):
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'
* \\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]
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):
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) \\'
self.xref = {}
self.factory = glItemFactory()
self.header_tag = None
+ self.undef_list = []
def find_type(self,type_name):
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):
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.