diff options
Diffstat (limited to 'nx-X11/extras/ogl-sample/main/doc/man/tools/constCheck.pl')
-rw-r--r-- | nx-X11/extras/ogl-sample/main/doc/man/tools/constCheck.pl | 160 |
1 files changed, 160 insertions, 0 deletions
diff --git a/nx-X11/extras/ogl-sample/main/doc/man/tools/constCheck.pl b/nx-X11/extras/ogl-sample/main/doc/man/tools/constCheck.pl new file mode 100644 index 000000000..391435706 --- /dev/null +++ b/nx-X11/extras/ogl-sample/main/doc/man/tools/constCheck.pl @@ -0,0 +1,160 @@ +#! /usr/sbin/perl +# +# License Applicability. Except to the extent portions of this file are +# made subject to an alternative license as permitted in the SGI Free +# Software License B, Version 1.1 (the "License"), the contents of this +# file are subject only to the provisions of the License. You may not use +# this file except in compliance with the License. You may obtain a copy +# of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 +# Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: +# +# http://oss.sgi.com/projects/FreeB +# +# Note that, as provided in the License, the Software is distributed on an +# "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS +# DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND +# CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A +# PARTICULAR PURPOSE, AND NON-INFRINGEMENT. +# +# Original Code. The Original Code is: OpenGL Sample Implementation, +# Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, +# Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. +# Copyright in any portions created by third parties is as indicated +# elsewhere herein. All Rights Reserved. +# +# Additional Notice Provisions: The application programming interfaces +# established by SGI in conjunction with the Original Code are The +# OpenGL(R) Graphics System: A Specification (Version 1.2.1), released +# April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version +# 1.3), released November 4, 1998; and OpenGL(R) Graphics with the X +# Window System(R) (Version 1.3), released October 19, 1998. This software +# was created using the OpenGL(R) version 1.2.1 Sample Implementation +# published by SGI, but has not been independently verified as being +# compliant with the OpenGL(R) version 1.2.1 Specification. +# +# $Date: 2004/03/14 08:29:09 $ $Revision: 1.1.1.4 $ +# $Header: /cvs/xorg/xc/extras/ogl-sample/main/doc/man/tools/constCheck.pl,v 1.1.1.4 2004/03/14 08:29:09 eich Exp $ + +#----------------------------------------------------------------------------- +# +# Command line options +# + +use Getopt::Std; +getopts( 'v' ); + +$verbose = 1 if $opt_v; + +#----------------------------------------------------------------------------- +# +# Configuration Variables +# + +$ROOT = $ENV{'ROOT'}; + +#----------------------------------------------------------------------------- +# +# Reference Files +# + +$gl_h = "$ROOT/usr/include/GL/gl.h"; +$glu_h = "$ROOT/usr/include/GL/glu.h"; +$glx_h = "$ROOT/usr/include/GL/glx.h"; +$glxtokens_h = "$ROOT/usr/include/GL/glxtokens.h"; + + +#----------------------------------------------------------------------------- +# +# Build lookup tables +# + +%glTokens = (); +open( INFILE, "$gl_h" ); +while ( <INFILE> ) { + $glTokens{$1} = 1 if /^\#\s*define\s+GL_([\w\d_]+)/; +} +close( INFILE ); + +%gluTokens = (); +open( INFILE, "$glu_h" ); +while ( <INFILE> ) { + $gluTokens{$1} = 1 if /^\#\s*define\s+GLU_([\w\d_]+)/; +} +close( INFILE ); + +%glxTokens = (); +open( INFILE, "$glx_h" ); +while ( <INFILE> ) { + $glxTokens{$1} = 1 if /^\#\s*define\s+GLX_([\w\d_]+)/; +} +close( INFILE ); + +open( INFILE, "$glxtokens_h" ); +while ( <INFILE> ) { + $glxTokens{$1} = 1 if /^\#\s*define\s+GLX_([\w\d_]+)/; +} +close( INFILE ); + + +#----------------------------------------------------------------------------- +# +# Check files +# + +$fmt = "[%s:%d] Undefined %s constant : '%s'\n"; + +foreach $file ( @ARGV ) { + $line = 1; + open( INFILE, "$file" ) || ( warn "Unable to open file '$file'\n", next ); + + print "Checking '$file' ...\n" if $verbose; + + while ( <INFILE> ) { + @words = split; + @tokens = grep( /_\w*const\([\w\d_]+\)/, @words ); + + foreach ( @tokens ) { + /(_\w*const)\(([\w\d]+)\)/; + $constTag = $1; + $token = $2; + + SWITCH : { + $constTag =~ /_const|_econst|_extstring/ + && do { + printf( $fmt, $file, $line, "GL", $token) + unless $glTokens{$token} == 1; + last SWITCH; + }; + + # + # _arbconst's tack an extra "_ARB" onto the end of the + # token. We need to check that. + # + $constTag =~ /_arbconst/ + && do { + $arbToken = $token . "_ARB"; + printf( $fmt, $file, $line, "GL", $token) + unless $glTokens{$arbToken} == 1; + last SWITCH; + }; + + $constTag =~ /_gluconst/ + && do { + printf( $fmt, $file, $line, "GLU", $token) + unless $gluTokens{$token} == 1; + last SWITCH; + }; + + $constTag =~ /_glxconst|_glxerror|_glxextstring/ + && do { + printf( $fmt, $file, $line, "GLX", $token) + unless $glxTokens{$token} == 1; + last SWITCH; + }; + } + } + + $line++; + } + close( INFILE ); +} |