-
Notifications
You must be signed in to change notification settings - Fork 4
/
exports.ls
executable file
·106 lines (92 loc) · 3.63 KB
/
exports.ls
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# 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.
#
# This awk script is used to generate exports
#
# Declare the language and type map to use and initialize any special tables
# required for processing.
#
# $Date$ $Revision$
# $Header$
function initialize() {
# these should be defined on the command line that invokes libspec
proc_prefix = PROCPREFIX;
typeMapFile = TYPEMAP;
future = FUTURE;
# Initialization for sanitizing function names:
MaxIDLen = 31;
}
function main( i, param, cmdlen, varsize) {
if (("extension", "not_implemented") in propListValues) return;
if (future == "yes") {
if (!(("extension", "future") in propListValues)) return;
} else {
if (("extension", "future") in propListValues) return;
}
# If not C, who cares?
# if (!(("languages","c") in propListValues)) return
# Is the name distinguishable in its first MaxIDLen characters?
TruncatedName = substr(functionName, 1, MaxIDLen - length(proc_prefix));
if (TruncatedName in OriginalNames) {
if (functionName != OriginalNames[TruncatedName]) {
ErrorMessage = sprintf("the name %s is indistinguishable from %s",
functionName, OriginalNames[TruncatedName]);
Warning(ErrorMessage);
}
} else {
OriginalNames[TruncatedName] = functionName;
}
# OUTPUT should be defined on the command line that invokes libspec
#
# Print the function declaration
#
printf "%s%s\n", proc_prefix, functionName;
# handle alias
aliasName = "";
if ("alias" in propList) {
aliasName = propList["alias"];
sub( ",", "", aliasName);
printf "%s%s\n", proc_prefix, aliasName;
}
if ("aliasprivate" in propList) {
aliasName = propList["aliasprivate"];
sub( ",", "", aliasName);
printf "%s%s\n", proc_prefix, aliasName;
}
}
function finalize()
{
}
function Warning(message) {
Stderr = "cat 1>&2";
print "ERROR: " message | Stderr;
}