File: INSTALLATION

package info (click to toggle)
vrweb 1.5-5.1
  • links: PTS
  • area: main
  • in suites: potato
  • size: 15,124 kB
  • ctags: 27,485
  • sloc: cpp: 134,333; ansic: 95,670; sh: 1,072; asm: 712; makefile: 610; pascal: 536; perl: 347; csh: 26
file content (405 lines) | stat: -rw-r--r-- 14,067 bytes parent folder | download | duplicates (6)
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
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
Copyright (c) 1995,96,97 by the Institute for Information Processing and
Computer Supported New Media (IICM), Graz University of Technology,
Austria.

May 27, 1997



VRweb 1.5 Unix Source Code
==========================


This source tree contains the complete source code for the Unix/X11
version of VRweb, including the sources of all necessary libraries and
imake configuration files. See file COPYRIGHT for copyright notices!

VRweb uses a modified version of the Stanford/SGI InterViews 3.1 user
interface toolkit and the OpenGL and/or Mesa graphics libraries.

We have compiled and run VRweb 1.5 under SGI Irix, DEC Alpha/OSF1, SUN
Solaris, SUN OS, HPUX, IBM AIX, BSDI, and LINUX. It should not be too
difficult to configure the imake environment for another platform.

Please let us know if you successfully port VRweb to another platform,
so that we can incorporate any fixes/changes you might have into the
master code tree. Thanks to Mike Convey <mike@novell.co.uk> who did so
for Novell UnixWare, to Meredith Whyles <mwhyles@merlyn.galstar.com>
for porting to SCO UNIX, and both to Dave Bodenstab <imdave@synet.net>
and Anton Krasovsky <anton@dawn.ww.net> for a port to FreeBSD, and all
other persons who provided patches and feedback.


Important
*********

To keep up with the library versions used by VRweb which are provided
by Hyper-G/Hyperwave and its Harmony client for Unix/X11, and to make
compilation hopefully a bit simpler, we changed the installation
procedure (again) since the previous release.

The make_world perl script was finally discarded and replaced by calls
of make/imake in the according library subdirectories.

*********************************************************************
** Thus continue to read this installation guide, even if you have **
** already compiled the VRweb source of version 1.3 or earlier.    **
*********************************************************************


                    Have fun,

                               Keith Andrews, Michael Pichler


Keith Andrews       kandrews@iicm.edu     VRweb project leader
Michael Pichler     mpichler@iicm.edu     VRweb lead programmer

vrweb-info@iicm.edu ... General questions
vrweb-bugs@iicm.edu ... bug reports

http://www.iicm.edu/vrweb ... VRweb home page
- see file README for ftp download sites



Contents
--------


- Installation Guide:
        how to build the VRweb software on your system

- Porting to Other Platforms:
        how to compile on a different platform,
        troubleshooting in case of compilation problems

- Graphics Libraries:
        about VRweb's use of OpenGL and the Mesa library

- Spaceball Support:
        how to use a spaceball with VRweb

- The binaries:
        where to continue after successful compilation

- What's where in the Directories?
        source tree structure



Installation Guide
------------------


0. If you can make use of a precompiled version, do so (see README-Unix).
   It will make your life a bit easier :-)

   If you hate reading lengthy documentation upack the source archive
   and enter the following 3 commands in order:

     makeall -r
     makeall -m
     makeall -i

   and see what happens... (it is recommended to read on though).


1. Make sure perl is installed, and a C++ compiler is available.
   We develop using gcc/g++ for fewer portability problems across platforms.
   If you want to use a different compiler, you will have to adjust
   the config files. We recommend using g++ version 2.7.2.


2. gunzip and untar the tar archive. The command:

     gzip -cd vrweb-src-1.5.tar.gz | tar xvf -

   will create a subdirectory vrweb-1.5 (the one also containing this
   INSTALLATION guide). From now on, this directory is referred as $vrweb.


3. The uncompressed source tree takes about 11 MB disk space. During
   compilation this will grow up to about 70 MB (Linux, Solaris) to 85 MB
   (Dec Alpha w/ OpenGL). About one third of this number is put into subdir
   $vrweb/installed, which will be created during compilation to hold
   installed libraries and programs; you can put these data elsewhere by
   creating a symbolic link for installed before starting compilation.

   See below about what's where in each directory.


4. cd $vrweb  and run:  makeall -h

   If you are in the proper directoy it will find the subdir config/scripts,
   where the scripts are located.

   Normally, makeall is able to determine how to set $CPU from the uname
   system call. See below about how it should be set and modify the
   makeall script if necessary.

   You also need to use GNU make instead of the native make command.
   You can either set the path in makeall or create a link,
   e.g.: cd config/scripts ; ln -s /usr/local/bin/gmake make


5. Possible settings of CPU

      [csh/tcsh etc.:]  setenv CPU xxx
   [sh/ksh/bash etc.:]  CPU=xxx ; export CPU

   CPU set to   Machine (using gcc/g++)
   ----------   -----------------------
      SGI_GNU   SGI
     SUN4_GNU   SUN OS
     SUN5_GNU   SUN Solaris
    ALPHA_GNU   DEC Alpha
     PMAX_GNU   DEC Ultix
    HPUX9_GNU   HP
   IBMAIX_GNU   IBM/AIX
    LINUX_ELF   LINUX/ELF
      FREEBSD   FreeBSD

   On other machines you have to modify the configuration
   files in $vrweb/config and $vrweb/config/scripts.
   For some notes on porting, see the next section.


6a makeall -r  will set the RootDir to $vrweb

   ... in config/hg_path.def and config/scripts/hgmkmf.


6b makeall -m  will create Makefiles from Imakefiles

   If you plan to modify source files, you should call makeall -a
   after compilation to create dependencies in Makefile rules.
   For a straight forward compilation makeall -m is sufficient,
   and should take less than a minute.


6c makeall -i  runs the actual make commands

   All machine dependend stuff will be put into $CPU subdirectories,
   allowing compilation on different architectures in one source tree.
   A complete first time build from scratch will take somewhere
   between 15 and 45 minutes (typically 20 to 30).

   You may use "makeall -i -k" to call make -k in all subdirectories.
   Libraries and include files will be installed into $vrweb/installed.
   If this fails somewhere, other program parts needing them will fail
   to compile as well.

   As opposed to the VRweb 1.3 compilation environment, shell output is
   not logged to a file automatically. You may use a command like
   (csh:) makeall -i |& tee make.log


7. When all went well, the stripped binaries (see below about their
   names) are to be found in $vrweb/installed/harmony/bin/$CPU
   and the unstripped binaries are in $vrweb/src/harmony/scene/$CPU.


8. To save disk space you can enter make clean in some of the
   library directories. The larger ones are
   $vrweb/src/harmony/{iicmviews,widgets,mesa}.


9. The procedure described above is only intended for a complete build
   from scratch. If you plan to modify the source code it suffices
   to call make install in the directories affected by the change,
   ensuring proper setting of $CPU and having $vrweb/config/scripts
   in the PATH. Also, dependencies should have been created by calling
   makeall -m or hgmkmf -a (see 6b).


A. Disclaimer: the configuration environment fulfills our internal
   needs (having several library programmers installing their work).
   It is very little adaptive to requirements of users (e.g. adding
   debugging flags or using a different compiler).



Porting to Other Platforms
--------------------------

If you want to build the VRweb source code on another Unix platform
than we did, please note the following:

0. Basic knowledge of perl, shells, Makefiles, Imakefiles, and C++
   will be helpful.

1. Make sure config/scripts/hgimake recognizes your system environment.
   It runs uname -s/-r/-v and sets Defines passed to imake accordingly.

2. Look at config/template to understand how Imakefiles work:

   config/arch.def will determine which configuration file of sort
   hg_XXX.cf to use and sets MacroIncludeFile accordingly.
   Copy a similar hg_XXX.cf and edit it as necessary.
   config/gcc.def contains common gcc definitions.
   HasGcc is used to differ between GNU and native compilers.

   The purpose of imake is to pass template to the macro preprocessor,
   which will include several config files to generate a Makefile:

   Note: the VRweb configuration files no longer depend from X11
   configuration files.

   template includes:

   - arch.def  # sets MacroIncludeFile to the appropriate hg_XXX.def

   - hg_<yourArchitectureName>.def
     . makes machine specific settings
     . includes gcc.def for compilation with gcc/g++

   - hg_path.def
     . directory structure (rootdir set with makeall -r)

   - hg-special.def
     . compilation rules

   - params.def
     . what to build, special flags

   - rules.def
     . compilation rules; no changes should be necessary here

   - Imakefile - consists typically of two parts:
     . a machine independent part: MakeInObjectCodeDir
       that creates a CPU subdirectory and compiles there
     . a machine dependent part (InObjectCodeDir)
       that builds objects, programs, libraries

   - gl.conf
     graphics library and spaceball configuration (see below)

3. Because of different system header files, the Dispatcher library
   (src/common/Dispatch) will probably need some OS-dependent hacks
   to work. Few Imakefiles may be hard-coded for a specific compiler,
   we apologize for that.

4. If you run across problems, and you cannot find an answer
   in this file, look at the VRweb FAQ (FAQ-Unix.html on ftp sites
   or latest version at http://www.iicm.edu/vrweb.FAQ).
   Only if you cannot find an answer there, send a mail to the
   developers.



Graphic Libraries
-----------------


VRweb can use any of three graphics libraries: OpenGL, IrisGL or
Mesa. You can control which of the above versions are made by editing
$vrweb/config/gl.conf:

If OPEN_GL is defined the OpenGL version is made; the same holds for
IRIS_GL and MESA_GL.

Currently gl.conf makes the following "guesses":
On any architecture, make the Mesa version.
On Dec Alpha architectures also the OpenGL version.
On SGI architectures, build all versions.

To use OpenGL, make sure it is installed (include files
/usr/include/GL/gl*.h, libraries libGL[u].a for compilation, and
Xserver with working GLX extension for display). This is always the
case for (almost all) SGI machines; on DEC Alphas OpenGL is part of
the Open3D package and has to be installed explicitly by the system
administrator; Sun's OpenGL is available for Sun Ultra machines with a
Creator 3D board. If you have access to an OpenGL version on your
architecture (e.g. by a 3rd party vendor), just set the #define
OPEN_GL in gl.conf to use it.

The Mesa library (by brianp@ssec.wisc.edu) works on all X displays and
has a programming interface very similar to OpenGL. It is included in
this tar file (release 2.1 with some slight modifications). For more
information look at http://www.ssec.wisc.edu/~brianp/Mesa.html and the
README files in the src/harmony/mesa subdir. Mesa neither needs nor
benefits from 3D graphics hardware accelerators.

IrisGL is available only on Silicon Graphics machines and is now
obsolete, having been superceded by OpenGL. Source to build an IrisGL
binary is still included, but it comprises less functionality than the
OpenGL version.

The included ge3d library is used to encapsulate all graphic library
dependent code from the main application code. The scene/*context
source files implement the link between the graphic library and the
InterViews GUI library.



Spaceball support
-----------------


VRweb supports a Spaceball since release 1.1.2 (and prerelease
1.1s). For more information see the on-line help.

If you have a Spaceball connected to your system, activate the
#define SPACEBALL
in $vrweb/config/gl.conf. You also have to set the appropriate
include path and compiler flags in SpaceballCCFlags and the
library path in SpaceballLDFlags. The settings are the default
paths on SGI systems.



The Binaries
------------


The VRweb viewers are named vrweb-ogl, vrweb-gl, and vrweb-mesa
according to which graphic library they use. The installed (stripped)
versions are to be found in $vrweb/installed/harmony/bin/$CPU, the
unstripped versions (for debugging) in $vrweb/src/harmony/scene/$CPU.

Call the appropriate version of VRweb with the name of a VRML file as
argument, or use argument -h to get a list of possible options. To
install the on-line help pages (installation and usage guide) see the
instructions in file README-Unix.

The Harmony VRweb Scene Viewer (harscened..., to be used only in
conjunction with Harmony, the Hyper-G client for UNIX/X11) is no
longer distributed in source code.



What's where in the Directories?
--------------------------------


. ($vrweb)      ... INSTALLATION, COPYRIGHT, README*, makeall, ...

config          ... configuration files (template, *.cf, *.def)
config/scripts  ... scripts (hgmkmf, hgimake, gccmakedep, ...)

src/common/utils        ... common utilities (data structures) (libHgUtilities)
src/common/Dispatch     ... dispatcher source code (libHgDispatch)
src/common/OS           ... OS part of Dipatcher/InterViews (libHgOS)
src/common/http         ... HTTP tools (libHgHttp)
src/common/hyperg       ... common Hyper-G stuff (libHgHyperg)

src/harmony/iicmviews   ... IICM-Views library source (libIICMViews)
src/harmony/widgets     ... widgets library source (libHgWidgets)
src/harmony/WWWTools    ... WWW tools (libHgWWWTools)

src/harmony/ge3d        ... GE3D: graphics library atop OpenGL/IrisGL/Mesa
src/harmony/mesa/Mesa   ... part of Brian Paul's Mesa library
src/harmony/vrml/qv     ... VRML Qv parser (with some modifications)

src/harmony/scene       ... VRweb core code


installed               ... created during compilation (not part of tar-file)
installed/include       ... installed include files
installed/lib/$CPU      ... installed libraries
installed/harmony/bin/$CPU  installed program files



[end of file INSTALLATION]