aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/lib/GLw/README.html
blob: 973ba9cf072370ef9c7416ce4a1745beff63ec20 (plain)
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>GL widgets for Xt/Motif - XFree86 implementation</TITLE>
<META NAME="generator" CONTENT="Only VIM and me.">
</HEAD>
<BODY BGCOLOR="#FFFFFF">

<!-- $XFree86$ -->

<H1 ALIGN=CENTER>GL widgets for Xt/Motif</H1>
<H2 ALIGN=CENTER>XFree86 implementation</H1>
<P ALIGN=CENTER>by Carlos A. M. dos Santos<BR>casantos@cpmet.ufpel.tche.br</P>

<HR NOSHADE>

<H3>1. Introduction</H3>
<P>
This directory contains the source code for SGI's OpenGL Xt/Motif(TM) widgets,
slightly modified to generate both Motif 1.x and 2.x versions of
the widget even if Motif is not available, as in the XFree86 distribution of
the X Window System. This code is based on that distributed by Silicon
Graphics as part of it's OpenGL Sample Implementation, not on the modified version
distributed with Mesa.


<H3>2. Installation</H3>
<P>
This code is intended to be compiled as part of the normal XFree86 building
process, under the xc/lib/GLw directory. To compile the library out of the X
source tree, follow instructions below.

<H3>2.1. Requirements</H3>
<P>
Gzip and tar are needed to extract the files from the distribution <A
HREF="http://www.inf.ufrgs.br/~casantos/libGLw/GLw.tar.gz">archive</A>. Tar is
a standard UNIX utility but if you don't have it use GNU tar, available in
source form at <A
HREF="ftp://ftp.gnu.org/pub/gnu/">ftp://ftp.gnu.org/pub/gnu/</A>.  Gzip is not
a standard UNIX utility, though available in many systems. You may obtain it
(also source form) at the same FTP server as GNU tar.

<P>
You need xmkmf and imake too. Depending on your operating system you may need
to install some kind of X Window System development kit, so check the vendor
documentation first. I was told that some UNIX systems don't have imake:
report this as a bug (to your vendor, not me).

<P>
Of course you will need a C compiler.

<H3>2.2. Steps</H3>
<P>
<OL>
  <LI>Extract the source code from the distribution archive.
      <P>
      <CODE>
       gzip -dc GLw.tar.gz | tar xf -
      </CODE>
      <P>
  <LI>Go to the surce code directory and generate the makefile.
      <P>
      <CODE>
       cd GLw<BR>
       xmkmf
      </CODE>
      <P>For LessTif, use "mxmkmf" instead of "xmkmf". Imake support
       is much better in recent versions of LessTif (since late july 2000).
       If your Motif or OpenGL libraries and/or include files are installed in
       non-standard locations (some UNIX vendors seem to be very creative :-)
       then edit the file named Imakefile, remove the leading XCOMM of the
       lines containing MOTIF_INCLUDES and MOTIF_LDFLAGS and set the
       appropriate values.
      <P>
  <LI>Compile the code with
      <P>
      <CODE>
       make includes<BR>
       make standalone
      </CODE>
      <P>
  <LI>Install the library and manual pages with
      <P>
      <CODE>
       make install<BR>
       make install.man
      </CODE>
      <P>
  <LI>Optionally, you may compile two test programs: xmdemo and xtdemo. You need OpenGL
      (or Mesa) for both and Motif (or LessTif) for xmdemo. There are four
      extra make targers for these programs: demos, stand-demos, stand-xmdemo
      and stand-xtdemo. You may use them with:
      <P>
      <CODE>
       make stand-demos<BR>
       ./xmdemo
       ./xtdemo
      </CODE>
</OL>

<H3>2.3. Creating a shared library</H3>
<P>
By default only a static library is created because most of the UNIX loaders,
if not all, complain about unresolved symbols even if the application doesn't
use the modules in which such symbols are referenced. However, if your system
supports libraries with weak symbols (e.g. Solaris, FreeBSD and Linux) it is
possible to fool the loader. All you have to do is edit the Imakefile,
changing "#define SharedLibGLw" and "#define GLwUseXmStubs" to YES, then
repeat the compilation process starting from step 2 in the previous section.

<H3>2.4. Problems</H3>
<P>
If you have trouble, ask for help in the XFree86 "xperts" mailing list. Look
at <A HREF="http://www.xfree86.org">http://www.xfree86.org</A> for
instructions on how to subscribe.  In desperation, send an email to <A
HREF="mailto:casantos@cpmet.ufpel.tche.br">casantos@cpmet.ufpel.tche.br</A>.

<P>
PLEASE DO NOT SEND ME EMAIL ASKING HOW TO INSTALL OR CONFIGURE YOUR OPERATING
SYSTEM, MODEM, NETWORK CARD, BREAD TOASTER, COFEE MAKER OR WHATEVER ELSE!


<H3>3. Copyrights</H3>
<P>
Most of the code is covered by the following license terms:
<BLOCKQUOTE>
<P>
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:
<P>
<A
HREF="http://oss.sgi.com/projects/FreeB">http://oss.sgi.com/projects/FreeB</A>
<P>
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.
<P>
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 &copy; 1991-2000 Silicon Graphics, Inc.
Copyright in any portions created by third parties is as indicated
elsewhere herein. All Rights Reserved.
<P>
Additional Notice Provisions: The application programming interfaces
established by SGI in conjunction with the Original Code are The
OpenGL&reg; Graphics System: A Specification (Version 1.2.1), released
April 1, 1999; The OpenGL&reg; Graphics System Utility Library (Version
1.3), released November 4, 1998; and OpenGL&reg; Graphics with the X
Window System&reg; (Version 1.3), released October 19, 1998. This software
was created using the OpenGL&reg; version 1.2.1 Sample Implementation
published by SGI, but has not been independently verified as being
compliant with the OpenGL&reg; version 1.2.1 Specification.
</BLOCKQUOTE>

<P>
The demonstration programs are covered by the following license terms:

<BLOCKQUOTE>
<P>
Copyright &copy; Mark J. Kilgard, 1995, 1996.

<P>
NOTICE:  This source code distribution contains source code contained in
the book "Programming OpenGL for the X Window System" (ISBN:
0-201-48359-9) published by Addison-Wesley.  The programs and associated
files contained in the distribution were developed by Mark J. Kilgard and
are Copyright 1994, 1995, 1996 by Mark J.  Kilgard (unless otherwise
noted).  The programs are not in the public domain, but they are freely
distributable without licensing fees.  These programs are provided without
guarantee or warrantee expressed or implied.
</BLOCKQUOTE>

<P>
The files contained in directory GLwXm are fake Motif headers, covered by
the XFree86 license, they permit us to generate both Motif 1.x and 2.x
versions of the widget without having Motif.  Notice that they are NOT part of
a standard Motif distribution and shall not be used to compile any other code.


<H3>4. Thanks</H3>

<P>
Many thanks to Silicon Graphics and Mark J. Kilgard for making their
software free.


<H3>5. No thanks</H3>

<BLOCKQUOTE>
<P>
<STRONG>
THIS SECTION CONTAINS MY PERSONAL OPINIONS AND
DOESN'T REPRESENT AN OFFICIAL POSITION OF THE XFree86 PROJECT.
</STRONG>
</BLOCKQUOTE>

<P>
The first incarnation of this version of libGLw used eight header files from
<A HREF="http://www.lesstif.org/">LessTif</A>, four for each Motif version.
LessTif is covered by the GNU Library General Public License (LGPL) whose
terms are not compatible with the XFree86 licensing policy.  Since the
copyright holder of LessTif is the <A HREF="http://www.fsf.org/">Free Software
Foundation</A> (FSF), I asked Richard Stallman, president of FSF and so called
"leader of the Free Software movement", permission to redistribute a copy of
those eight headers under XFree86 terms, still maintaining the FSF copyright.

<P>
Observe that I was not asking him to change the license of LessTif as a whole,
but only to allow me to distribute copies of some header files containing
function prototypes, variable declarations and data type definitions. Even so,
Stallman said no because the files contained "more than 6000 lines of code".
Which code? The LessTif headers are mostly copies of the Motif ones and don't
contain any original GNU "code"! I can't still imagine a reason for Stallman's
negative answer except for paranoia.  He seems to ignore what Motif is and
that LessTif's API is simply a copy of Motif's one.

<P>
After spending some time, I made my own headers, that became much smaller than
the previous ones because I included only a subset of the Motif API and merged
everything into four files: 417 lines instead 6000. Humm, perhaps I should be
grateful to Sallman too :-).


<H3>6. Trademarks</H3>

<P>
<UL>
  <LI>OpenGL is a trademark of Silicon Graphics, Inc.
  <LI>Motif is a trademark of the Open Group.
</UL>

<HR NOSHADE>

</BODY>
</HTML>