From: Ian Romanick Date: Tue, 1 Feb 2005 00:28:47 +0000 (+0000) Subject: Small refactor. Move several utility functions from glX_XML.py to X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c2803587b6f2533514e1cfa9793d0a448e9c2c85;p=mesa.git 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. --- diff --git a/src/mesa/glapi/glX_XML.py b/src/mesa/glapi/glX_XML.py index 56a2113f050..9a34111efe7 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 146d6620790..949a0c94334 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 */ """ - 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 e8a137c5e12..3030e7462b2 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 */ """ - 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 086133cdf1e..1771975e843 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.