root/juggler/branches/2.0_alpha_4/INSTALL.html

Revision 14775, 34.0 kB (checked in by patrickh, 4 years ago)

Regenerate.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1 <html><head>
2       <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
3    <title>Building and Installing the Juggler Project (Version 1.1/2.0)</title><link rel="stylesheet" href="base_style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="d0e1"></a>Building and Installing the Juggler Project (Version 1.1/2.0)</h1></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="othername">The Juggler Team</span></h3></div></div></div><div><p class="pubdate">$Date$</p></div></div><div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#d0e15">Introduction</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e32">Important Notes for IRIX Users</a></span></dt><dt><span class="section"><a href="#d0e116">Important Note for Win32 Users</a></span></dt></dl></dd><dt><span class="section"><a href="#source.code.section">Getting the Source Code and the Dependencies</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e191">How to Get the Juggler Suite from CVS</a></span></dt><dt><span class="section"><a href="#d0e201">Downloading Binary Dependencies</a></span></dt></dl></dd><dt><span class="section"><a href="#compile.section">Compiling</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e306">Important Note Regarding Compiling</a></span></dt><dt><span class="section"><a href="#d0e317">Compiling the Juggler Suite of Tools</a></span></dt><dt><span class="section"><a href="#compile.individual.section">Tips for Compiling Individual Tools in the Juggler Suite</a></span></dt></dl></dd></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e15"></a>Introduction</h2></div></div><div></div></div><p>You have downloaded the source code for Version 1.1 of the Juggler
4     Project. This is the code that will become VR Juggler 2.0, and it is the
5     code that is used to create the VR juggler 2.0 pre-releases. Please be
6     aware that this code represents a work in progress, and if you acquired it
7     directly from CVS rather than using a pre-packaged source code snapshot,
8     the code may have bugs affecting compilation and execution.</p><p>This document explains how to build the modules of the Juggler
9     Project from the source code. We begin by explaining some issues related
10     to specific operating systems. We then explain how to get the source code
11     from our CVS repository. (Those users who downloaded a pre-packaged source
12     release can skip ahead to <a href="#using.configure.pl" title="Using configure.pl">the section called &#8220;Using configure.pl&#8221;</a>). We
13     conclude with instructions on how to build VR Juggler and its individual
14     components.</p><p>Before reading further, we recommend that readers take a look at the
15     Wiki page relating to building from CVS (<a href="http://www.vrjuggler.org/twiki_public/bin/view/Juggler/BuildingFromCvs" target="_top">http://www.vrjuggler.org/twiki_public/bin/view/Juggler/BuildingFromCvs</a>).
16     It is a <span class="emphasis"><em>supplement</em></span> to this document containing tips
17     and reminders for those users building the CVS version of VR Juggler. It
18     is not a replacement for this document, nor can it stand on its own as
19     build instructions. You are reading the definitive build instructions; the
20     Wiki page merely provides informal, extra information.</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e32"></a>Important Notes for IRIX Users</h3></div></div><div></div></div><p>Despite our best efforts, there are some issues related to
21       compiling the Juggler Project on IRIX. We introduce them in this section
22       and explain how to work around them.</p><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e37"></a>Perl Version</h4></div></div><div></div></div><p>There are many Perl scripts used as part of getting,
23         configuring, and building the Juggler Suite of tools. In particular,
24         two scripts required for compiling need Perl 5.005 or newer. The
25         version of Perl that ships with IRIX 6.5 is very old (circa 1997) and
26         does not work with many Perl scripts we have written. SGI provides a
27         much newer version of Perl (5.6.1) with their freeware tools (<a href="http://freeware.sgi.com/" target="_top">http://freeware.sgi.com/</a>). It
28         will be necessary to install that version for our scripts to work.
29         This version is typically installed as <tt class="filename">/usr/freeware/bin/perl</tt>.</p><p>Once you have a modern Perl installed, you can run various Perl
30         scripts as follows:</p><pre class="screen">/usr/freeware/bin/perl &lt;script-name&gt;</pre><p>The above will be required any time a Perl script fails with an
31         error similar to the following:</p><pre class="screen">Perl 5.005 required--this is only version 5.00404, stopped at ./configure.pl line 35.
32 BEGIN failed--compilation aborted at ./configure.pl line 35.</pre><p>Furthermore, it is highly recommended that the <tt class="option">--with-perl</tt>
33         argument be passed to <span><b class="command">configure.pl</b></span>. This argument
34         gives all the Autoconf-based configure scripts a hint about where the
35         preferred version of Perl lives. If using <tt class="filename">/usr/freeware/bin/perl</tt>
36         to run <span><b class="command">configure.pl</b></span>, we recommend that the
37         <span><b class="command">configure.pl</b></span> command line appear similar to the
38         following:</p><pre class="screen">/usr/freeware/bin/perl configure.pl --with-perl=/usr/freeware/bin</pre><p>Note that the value given to <tt class="option">--with-perl</tt> is the
39         <span class="emphasis"><em>directory</em></span> where the <span><b class="command">perl</b></span>
40         executable can be found. The configure scripts will add this directory
41         to the front of the search path when trying to find a suitable
42         <span><b class="command">perl</b></span> executable. Once it is found, all the Perl
43         scripts used for configuration, compilation, and installation will use
44         that executable.</p><p>To simplify command execution somewhat, it can help to have
45         <tt class="filename">/usr/freeware/bin</tt> (or whatever path is
46         appropriate) in your path before <tt class="filename">/bin</tt> or
47         <tt class="filename">/usr/bin</tt> or any of the other myriad directories
48         where Perl might exist on IRIX. In such a situation, none of the above
49         extra steps should be necessary. The correct version of Perl will be
50         found simply by virtue of it being early in your path.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e100"></a>MIPSpro Compiler Version</h4></div></div><div></div></div><p>Reports have been made on the VR Juggler mailing list regarding
51         compile failures (including segmentation faults within the compiler)
52         occur when using the MIPSpro Compilers Version 7.3.1.1m. We have found
53         upgrading to Version 7.3.1.3m (or newer) fixes the problems.</p><p>A new feature of VR Juggler 1.1 is support for GCC on IRIX.
54         Users who do not have MIPSpro or cannot upgrade can compile and run VR
55         Juggler (without OpenGL Performer support) using the version of GCC
56         distributed by SGI. It can be downloaded from <a href="http://freeware.sgi.com/index-by-alpha.html" target="_top">http://freeware.sgi.com/index-by-alpha.html</a>
57         for free. When configuring the source with <span><b class="command">configure.pl</b></span>
58         (described later), use the option <tt class="option">--with-gcc</tt>.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e116"></a>Important Note for Win32 Users</h3></div></div><div></div></div><p>VR Juggler 1.1 uses a lot of C++ templates. Some components of the
59       system will not compile with MS Visual Studio 6.0, and as a result, we
60       currently require the use of Visual Studio 7 (.NET) to compile the
61       source code. We understand that this is an inconvenience, and we are
62       interested in methods for compiling the code with Visual Studio 6.
63       However, due to VC6's poor support for templates and the C++
64       standard in general, users need to be aware that it may not be possible.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="source.code.section"></a>Getting the Source Code and the Dependencies</h2></div></div><div></div></div><p>In this section, we explain how to get the Juggler Project source
65     code and the dependencies required to build Juggler. There are two ways to
66     get the source code: from a pre-packaged source release archive or from
67     the CVS repository on SourceForge. If you got the code from a pre-packaged
68     source archive, that code is a complete &#8220;<span class="quote">snapshot</span>&#8221; of the CVS
69     repository at the time of release. It contains all dependencies that would
70     otherwise have been acquired using CVS. It <span class="emphasis"><em>does not</em></span>
71     contain binary dependencies that must be downloaded separately (such as
72     NSPR, the Java Developer Kit, a C++ compiler, etc.).</p><p>The current list of <span class="emphasis"><em>required</em></span> software packages
73     is as follows:</p><div class="itemizedlist"><ul type="disc"><li><p>CppDOM (<a href="http://www.sourceforge.net/projects/xml-cppdom/" target="_top">http://www.sf.net/projects/xml-cppdom/</a>):
74         A lightweight, easy-to-use XML parser written in C++. CppDOM must be
75         compiled and installed for use with VR Juggler.</p></li><li><p>Boost (<a href="http://www.boost.org/" target="_top">http://www.boost.org/</a>):
76         A C++ library providing many powerful utility classes and libraries.
77         Boost must be compiled and installed for use with VR Juggler.</p></li><li><p>GMTL (<a href="http://ggt.sourceforge.net/" target="_top">http://ggt.sf.net/</a>):
78         A generic math library that makes use of C++ templates and STL
79         paradigms. GMTL must be installed for use with VR Juggler.</p></li></ul></div><p>The following lists <span class="emphasis"><em>semi-optional</em></span> packages:</p><div class="itemizedlist"><ul type="disc"><li><p>NSPR (<a href="http://www.mozilla.org/projects/nspr/" target="_top">http://www.mozilla.org/projects/nspr/</a>):
80         The Netscape Portable Runtime, which can be used by VPR for threading
81         and sockets (required on Win32, Solaris, and Mac OS X).</p></li><li><p>Java Developer Kit (<a href="http://java.sun.com/" target="_top">http://java.sun.com/</a>):
82         The J2SE SDK (or JDK) is used to compile all the Java code used in the
83         Juggler Project. Without it, none of the Java code can be built. We
84         require version 1.3 or newer; we recommend version 1.4 or newer. The
85         Java Standard Edition (J2SE) can be downloaded from <a href="http://java.sun.com/j2se/" target="_top">http://java.sun.com/j2se/</a>.</p></li><li><p>OpenORB (<a href="http://www.jdom.org/" target="_top">http://openorb.sourceforge.net/</a>):
86         A pure Java implementation of CORBA 2.3, required for the Tweek Java
87         GUI if you are using a version of the JDK older than 1.4.0.</p></li><li><p>omniORB (<a href="http://www.jdom.org/" target="_top">http://omniorb.sourceforge.net/</a>):
88         A C++ implementation of CORBA 2.3, required for the Tweek C++ API.</p></li></ul></div><p>In the following subsections, we describe how to get all of the
89     above except Boost, CppDOM, the JDK, OpenORB, omniORB, and NSPR. These
90     must be downloaded individually from the sites listed above. You may also
91     have to compile one or more of the packages if binary distributions are
92     not available. Which packages you download depends on what you already
93     have installed. Note carefully which packages are needed based on the
94     software you have installed and what versions of tools (such as the JDK)
95     that you download.</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e191"></a>How to Get the Juggler Suite from CVS</h3></div></div><div></div></div><p>You can optionally get the Juggler Project as a source code
96       tarball from the website (<a href="http://www.vrjuggler.org/" target="_top">http://www.vrjuggler.org/</a>)
97       or you can execute the following commands from a shell to get the code
98       from our CVS repository:</p><pre class="screen">cvs -d :pserver:anonymous@cvs.vrjuggler.sourceforge.net:/cvsroot/vrjuggler login
99 cvs -z3 -d :pserver:anonymous@cvs.vrjuggler.sourceforge.net:/cvsroot/vrjuggler co juggler</pre></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e201"></a>Downloading Binary Dependencies</h3></div></div><div></div></div><p>In addition to source the dependencies acquired through CVS, there
100       are some third-party dependencies that must be installed separately.
101       Remember that no Java code in VR Juggler can be used without the JDK and
102       a working Java version of CORBA (either from OpenORB, JacORB, or the JDK
103       itself).</p><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e206"></a>Boost</h4></div></div><div></div></div><p>The minimum required version of Boost, as of this writing, is
104         1.31.0. The Boost source can be downloaded from <a href="http://www.sf.net/projects/boost/" target="_top">http://www.sf.net/projects/boost/</a>.
105         To compile and install Boost, refer to its installation documentation
106         (<a href="http://www.boost.org/more/getting_started.html#Build_Install" target="_top">http://www.boost.org/more/getting_started.html#Build_Install</a>).
107         Note that you need the command <span><b class="command">bjam</b></span> (referred to as
108         &#8220;<span class="quote">boost-jam</span>&#8221; on the Boost download page) to build Boost.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e223"></a>CppDOM</h4></div></div><div></div></div><p>For XML processing, we use CppDOM 0.3.2 or newer. The source and
109         binary distributions for some platforms can be downloaded from <a href="http://www.sf.net/projects/xml-cppdom/" target="_top">http://www.sf.net/projects/xml-cppdom/</a>.
110         If a binary version is not available for your operating system you
111         must compile and install CppDOM yourself. Note that you need SCons (<a href="http://scons.sourceforge.net/" target="_top">http://scons.sourceforge.net/</a>)
112         to build and install CppDOM.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e234"></a>GMTL</h4></div></div><div></div></div><p>For high-level mathematical operations, we use GMTL 0.3.2 or
113         newer. The source distribution can be downloaded from <a href="http://www.sf.net/projects/ggt/" target="_top">http://www.sf.net/projects/ggt/</a>.
114         Note that you need SCons (<a href="http://scons.sourceforge.net/" target="_top">http://scons.sourceforge.net/</a>)
115         to build and install GMTL.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e245"></a>Netscape Portable Runtime (NSPR)</h4></div></div><div></div></div><p>Our operating system abstraction, VPR, can make use of NSPR for
116         operating system primitives. On some platforms (IRIX, FreeBSD, Linux),
117         the use of NSPR is strictly optional. On others (Win32, Mac OS X, and
118         Solaris), it is required. Based on your local system, you should
119         decide whether you need NSPR. Binary versions of NSPR can be
120         downloaded from <a href="ftp://ftp.mozilla.org/pub/mozilla.org/nspr/releases" target="_top">ftp://ftp.mozilla.org/pub/mozilla.org/nspr/releases</a>.
121         At this time, we recommend the use of version 4.2 or newer.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e253"></a>Java Developer Kit (also called the J2SE SDK)</h4></div></div><div></div></div><p>We make use of the Java programming language in addition to C++.
122         Java is used exclusively for GUIs such as Tweek and VRJConfig (which
123         is a JavaBean that is loaded into Tweek). To compile the Java code, a
124         JDK is necessary. We currently require version 1.3 or newer; we
125         recommend version 1.4 or newer. The Java Standard Edition can be
126         downloaded from <a href="http://java.sun.com/j2se/" target="_top">http://java.sun.com/j2se/</a>.
127         More information can be found at <a href="http://java.sun.com/" target="_top">http://java.sun.com/</a>.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e264"></a>OpenORB</h4></div></div><div></div></div><p>OpenORB is a pure-Java implementation of CORBA 2.3. It is
128         required in order to compile the Tweek Java API (and hence VRJConfig)
129         if you are using a version of the JDK older than 1.4.0. OpenORB 1.3.0
130         can be downloaded from <a href="http://openorb.sourceforge.net/" target="_top">http://openorb.sourceforge.net/</a>.</p><p>There are three JAR files needed to use OpenORB 1.3 with Juggler
131         Project code. They are <tt class="filename">openorb-1.3.0.jar</tt>,
132         <tt class="filename">avalon-framework.jar</tt>, and <tt class="filename">logkit.jar</tt>.
133         All three come with a standard OpenORB distribution. We will show how
134         to tell the configure scripts about these JAR files later.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e283"></a>omniORB</h4></div></div><div></div></div><p>omniORB is a C++ implementation of CORBA 2.3. It is required in
135         order to compile the Tweek C++ API. At this time, the Tweek C++ API is
136         not required for VR Juggler, but this situation will change in the
137         near future. At this time, we primarily use omniORB 4.0.x. omniORB can
138         be downloaded from <a href="http://omniorb.sourceforge.net/" target="_top">http://omniorb.sourceforge.net/</a>.</p><p>omniORB 3.0 has strange conventions for how installations are
139         made. Within the <tt class="filename">bin</tt> and <tt class="filename">lib</tt>
140         directories, there are platform-specific subdirectories that contain
141         the actual binaries (except when installed on FreeBSD via the Ports
142         Collection). Because of this, several extra options must be specified
143         in order to tell the Tweek configure script where to find everything.
144         Please refer to <a href="#tweek.build.section" title="Tweek">the section called &#8220;Tweek&#8221;</a> for more
145         details on this.</p></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="compile.section"></a>Compiling</h2></div></div><div></div></div><p>In this section, we describe how to compile the Juggler Project. We
146     focus on VR Juggler as a whole, but information about some of the
147     individual components is provided later.</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e306"></a>Important Note Regarding Compiling</h3></div></div><div></div></div><p>You have downloaded <span class="emphasis"><em>developmental</em></span> code. It
148       may not be stable, and it may not even compile. Compiling VR Juggler
149       itself can be a little complicated for anyone who does not have some
150       background in using CVS, Autoconf, C++, and <span><b class="command">make</b></span> or
151       Visual Studio.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e317"></a>Compiling the Juggler Suite of Tools</h3></div></div><div></div></div><p>This section explains how to get, configure, and compile all of
152       the tools that make up VR Juggler. Each tool compiles to its own library
153       and can be installed individually. (Refer to the <tt class="filename">README</tt>
154       file in this directory for more information about the specific modules.)</p><p>To build VR Juggler on Windows, you must use the Visual Studio
155       solution. After getting the dependencies needed to compile VR Juggler
156       (see the next section), refer to the <a href="vc7/README.html" target="_top">README.html</a>
157       file located in the <tt class="filename">vc7</tt> subdirectory of this
158       directory. Do not bother to the rest of this document.</p><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="config.vrjuggler.section"></a>Configuring VR Juggler</h4></div></div><div></div></div><p>Every time you update the source code acquired from CVS, it is
159         recommended that you run <span><b class="command">autogen.sh</b></span>. This script is
160         found in the top-level <tt class="filename">juggler</tt> directory, and it
161         is run as follows:</p><pre class="screen">./autogen.sh</pre><p>This <span><b class="command">autogen.sh</b></span> script must be run from the
162         directory where it exists. Do not try to run it from a build directory
163         or any other place in the Juggler source tree. The same holds for the
164         individual <span><b class="command">autogen.sh</b></span> scripts in the various
165         modules, should you need to run one individually.</p><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="using.configure.pl"></a>Using <span><b class="command">configure.pl</b></span></h5></div></div><div></div></div><p>In the base <tt class="filename">juggler</tt> source directory, we
166           have a &#8220;<span class="quote">global</span>&#8221; configure script written in Perl called
167           <span><b class="command">configure.pl</b></span>. To get the command-line options for
168           this script, use one of the following (the second being much more
169           detailed):</p><pre class="screen">./configure.pl --help
170 ./configure.pl --manual</pre><p>To configure your system, you will need to see what options
171           all the Autoconf-based configure scripts in VR Juggler need. To get
172           this text, enter:</p><pre class="screen">./configure.pl --all-help</pre><p><span><b class="command">configure.pl</b></span> can run in a different
173           &#8220;<span class="quote">build</span>&#8221; directory or in the directory where it resides.
174           Here is how we (the Juggler Team) have been using it:</p><div class="orderedlist"><ol type="1"><li><p>Make a directory for compiling. There are many good
175               reasons to do this away from the main source tree (though they
176               will not be listed here).</p><pre class="screen">mkdir build.linux.posix</pre><p>This example using an ad hoc naming convention based on
177               operating system and threading subsystem. Other examples could
178               be <tt class="filename">build.irix.sproc</tt>, <tt class="filename">build.solaris.nspr</tt>,
179               etc.</p></li><li><p>Enter the new build directory.</p><pre class="screen">cd build.linux.posix</pre></li><li><p>Configure all the modules making up VR Juggler. This is
180               when you must tell the module configure scripts where all the
181               package dependencies are found. For this description, we will
182               use the term <tt class="filename">&lt;JAVA_ORB_PATH&gt;</tt> to
183               refer to the installation directory containing a Java-based
184               CORBA implementation. Assume that this is an absolute path
185               (e.g., <tt class="filename">&lt;JAVA_ORB_PATH&gt;</tt> =
186               <tt class="filename">/home/user1/pkgs/openorb</tt>). For this
187               example, we will use the OpenORB 1.3 JAR file list.</p><pre class="screen">../configure.pl --prefix=$HOME/vrjuggler-2.0 --with-java-orb=OpenORB --with-java-orb-jar="&lt;JAVA_ORB_PATH&gt;/lib/openorb-1.3.0.jar:&lt;JAVA_ORB_PATH&gt;/lib/avalon-framework.jar:&lt;JAVA_ORB_PATH&gt;/lib/logkit.jar"</pre><p>If you are using JDK 1.4.0 or newer, your command line can
188               be simplified to the following:</p><pre class="screen">../configure.pl --prefix=$HOME/vrjuggler-2.0 --with-java-orb=JDK</pre><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>You will probably have to specify the paths to your
189                 local CppDOM, GMTL, and Boost installations using the options
190                 <tt class="option">--with-cppdom</tt>, <tt class="option">--with-gmtl-prefix</tt>
191                 and <tt class="option">--with-boost</tt> unless they are installed in
192                 the default location (<tt class="filename">/usr/local</tt>). By
193                 default, Boost 1.31 installs its header files in a
194                 subdirectory of <tt class="filename">include</tt> called
195                 <tt class="filename">boost-1_31</tt>. That is, if Boost is
196                 installed in <tt class="filename">/home/user1/pkgs/boost</tt>, the
197                 header files will be in <tt class="filename">/home/user1/pkgs/boost/include/boost-1_31</tt>.
198                 In this case, you must also specify the option
199                 <tt class="option">--with-boost-includes=/home/user1/pkgs/boost/include/boost-1_31</tt>
200                 when running <span><b class="command">configure.pl</b></span>.</p></div></li></ol></div><p>By default, the configuration process will configure VR
201           Juggler and all of its dependencies. This includes Sonix, which is
202           an interesting special case. Sonix can make use of Aaudiere, OpenAL,
203           or AudioWorks to add sound to VR Juggler applications. If none of
204           those packages is found, Sonix will &#8220;<span class="quote">stub out</span>&#8221; its
205           sound APIs. This means that Sonix and the VR Juggler Sound Manager
206           can still be used in applications, but no audio will be heard at run
207           time. See <a href="#sonix.compile.section" title="Sonix">the section called &#8220;Sonix&#8221;</a> for more
208           information about how to configure Sonix to use Audiere, OpenAL, or
209           AudioWorks.</p><p>For example uses of <span><b class="command">configure.pl</b></span>, take a
210           look at the Wiki page relating to building from CVS (<a href="http://www.vrjuggler.org/twiki_public/bin/view/Juggler/BuildingFromCvs" target="_top">http://www.vrjuggler.org/twiki_public/bin/view/Juggler/BuildingFromCvs</a>).
211           It is not a replacement for this document, but it shows how some
212           members of the Juggler team configure VR Juggler. It also has
213           information on more advanced uses of <span><b class="command">configure.pl</b></span>
214           that are beyond the scope of this document.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="d0e471"></a>Using Locally Installed Software</h5></div></div><div></div></div><p>As noted in <a href="#source.code.section" title="Getting the Source Code and the Dependencies">the section called &#8220;Getting the Source Code and the Dependencies&#8221;</a>, VR Juggler
215           depends on several external software packages. As an example,
216           consider the case where the GMTL library is installed in
217           <tt class="filename">/home/user1/pkgs/GMTL</tt> with the headers in
218           <tt class="filename">/home/user1/pkgs/GMTL/include</tt>. To use this
219           installation, run <span><b class="command">configure.pl</b></span> as follows:</p><pre class="screen">../configure.pl --with-gmtl-prefix=/home/user1/pkgs/GMTL</pre><p>The --<tt class="option">with-gmtl-prefix</tt> option could of course
220           be mixed in with those shown in the previous section.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="compile.vrjuggler.section"></a>Compiling VR Juggler</h4></div></div><div></div></div><p>Once the configuration process is complete, the code can be
221         compiled. Remember that we require the use of GNU make 3.78 or newer.</p><div class="orderedlist"><ol type="1"><li><p>Compile the source tree using GNU make.</p><pre class="screen">gmake build</pre></li><li><p>Once this completes, you will have a full build of VR
222             Juggler. For those who are not interested in developing VR Juggler
223             or its component modules, it is recommended that you install the
224             software and use the installed version for application
225             development. Do this as follows:</p><pre class="screen">gmake install</pre></li></ol></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="compile.individual.section"></a>Tips for Compiling Individual Tools in the Juggler Suite</h3></div></div><div></div></div><p>In this section, we provide tips for ensuring that individual
226       tools in the Juggler Suite are compiled correctly. For the most part,
227       this duplicates information that can be found on the Wiki page relating
228       to building from CVS (<a href="http://www.vrjuggler.org/twiki_public/bin/view/Juggler/BuildingFromCvs" target="_top">http://www.vrjuggler.org/twiki_public/bin/view/Juggler/BuildingFromCvs</a>).</p><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="sonix.compile.section"></a>Sonix</h4></div></div><div></div></div><p>Sonix wraps other audio subsystems such as OpenAL (<a href="http://www.openal.org/" target="_top">www.openal.org</a>), Audiere (<a href="http://audiere.sf.net/" target="_top">audiere.sf.net</a>), or AudioWorks (<a href="http://www.multigen.com/" target="_top">multigen.com</a>). At least one of
229         these packages must be installed for use by Sonix in order to hear
230         sounds in VR Juggler applications. Once you have all the necessary
231         source code and third-party package installations, add one or more of
232         the following options to your <span><b class="command">configure.pl</b></span> command
233         line to enable the appropriate audio subsystem:</p><div class="itemizedlist"><ul type="disc"><li><p><tt class="option">--enable-openal --with-openal=&lt;OPENAL_PATH&gt;</tt>:
234             Enable the use of OpenAL and tell the build where OpenAL is
235             installed. The default search path is <tt class="filename">/usr/local</tt>.</p></li><li><p><tt class="option">--enable-audiere
236             --with-audiere=&lt;AUDIERE_PATH&gt;</tt>: Enable the use of
237             Audiere and tell the build where Audiere is installed. The default
238             search path is