Changeset 20738
- Timestamp:
- 08/21/07 19:55:06 (1 year ago)
- Files:
-
- juggler/trunk/INSTALL.html (modified) (23 diffs)
- juggler/trunk/INSTALL.txt (modified) (7 diffs)
- juggler/trunk/README.html (modified) (1 diff)
- juggler/trunk/README.txt (modified) (3 diffs)
- juggler/trunk/doc/INSTALL.xml (modified) (4 diffs)
- juggler/trunk/doc/README.xml (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
juggler/trunk/INSTALL.html
r19949 r20738 1 1 <html><head> 2 2 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 3 <title>Building and Installing the Juggler Project (Version 2.3)</title><link rel="stylesheet" href="base_style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.7 1.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 2.3)</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><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 Windows Users</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e124">Build Tools</a></span></dt><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="#section.cvs.access">How to Get the Juggler Suite from Subversion</a></span></dt><dt><span class="section"><a href="#d0e250">Downloading Third-Party 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="#d0e332">Important Note Regarding Compiling</a></span></dt><dt><span class="section"><a href="#d0e343">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 Juggler3 <title>Building and Installing the Juggler Project (Version 2.3)</title><link rel="stylesheet" href="base_style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.73.0"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="d0e1"></a>Building and Installing the Juggler Project (Version 2.3)</h2></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><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 Windows Users</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e124">Build Tools</a></span></dt><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="#section.cvs.access">How to Get the Juggler Suite from Subversion</a></span></dt><dt><span class="section"><a href="#d0e250">Downloading Third-Party 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="#d0e332">Important Note Regarding Compiling</a></span></dt><dt><span class="section"><a href="#d0e343">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 4 4 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><p>You have downloaded the source code for Version 2.3 of the Juggler 5 Project. This is the code that will become VR Juggler 2.4, and it is the6 code that is used to create the VR juggler 2.4pre-releases. Please be5 Project. This is the code that will become VR Juggler 3.0, and it is the 6 code that is used to create the VR Juggler 3.0 pre-releases. Please be 7 7 aware that this code represents a work in progress, and if you acquired 8 8 it directly from Subversion rather than using a pre-packaged source code … … 12 12 to specific operating systems. We then explain how to get the source 13 13 code from our Subversion repository. (Those users who downloaded a 14 pre-packaged source release can skip ahead to <a href="#using.configure.pl" title="Using configure.pl">the section called “Using <span><strong class="command">configure.pl</strong></span>”</a>). We conclude with instructions on how14 pre-packaged source release can skip ahead to <a class="xref" href="#using.configure.pl" title="Using configure.pl">the section called “Using <span class="command"><strong>configure.pl</strong></span>”</a>). We conclude with instructions on how 15 15 to build VR Juggler and its individual components.</p><p>Before reading further, we recommend that readers take a look at 16 the Wiki page relating to building from source (<a href="http://www.vrjuggler.org/twiki_public/bin/view/Juggler/BuildingFromSvn" target="_top">http://www.vrjuggler.org/twiki_public/bin/view/Juggler/BuildingFromSvn</a>).16 the Wiki page relating to building from source (<a class="ulink" href="http://www.vrjuggler.org/twiki_public/bin/view/Juggler/BuildingFromSvn" target="_top">http://www.vrjuggler.org/twiki_public/bin/view/Juggler/BuildingFromSvn</a>). 17 17 It is a <span class="emphasis"><em>supplement</em></span> to this document containing tips 18 18 and reminders for those users building the SVN version of VR Juggler. It … … 27 27 (circa 1997) and does not work with many Perl scripts we have 28 28 written. SGI provides a much newer version of Perl (5.6.1) with 29 their freeware tools (<a href="http://freeware.sgi.com/" target="_top">http://freeware.sgi.com/</a>).29 their freeware tools (<a class="ulink" href="http://freeware.sgi.com/" target="_top">http://freeware.sgi.com/</a>). 30 30 It will be necessary to install that version for our scripts to 31 31 work. This version is typically installed as … … 35 35 BEGIN failed--compilation aborted at ./configure.pl line 35.</pre><p>Furthermore, it is highly recommended that the 36 36 <code class="option">--with-perl</code> argument be passed to 37 <span ><strong class="command">configure.pl</strong></span>. This argument gives all the37 <span class="command"><strong>configure.pl</strong></span>. This argument gives all the 38 38 Autoconf-based configure scripts a hint about where the preferred 39 39 version of Perl lives. If using 40 40 <code class="filename">/usr/freeware/bin/perl</code> to run 41 <span ><strong class="command">configure.pl</strong></span>, we recommend that the42 <span ><strong class="command">configure.pl</strong></span> command line appear similar to the41 <span class="command"><strong>configure.pl</strong></span>, we recommend that the 42 <span class="command"><strong>configure.pl</strong></span> command line appear similar to the 43 43 following:</p><pre class="screen">/usr/freeware/bin/perl configure.pl --with-perl=/usr/freeware/bin</pre><p>Note that the value given to <code class="option">--with-perl</code> is 44 44 the <span class="emphasis"><em>directory</em></span> where the 45 <span ><strong class="command">perl</strong></span> executable can be found. The configure45 <span class="command"><strong>perl</strong></span> executable can be found. The configure 46 46 scripts will add this directory to the front of the search path 47 when trying to find a suitable <span ><strong class="command">perl</strong></span> executable.47 when trying to find a suitable <span class="command"><strong>perl</strong></span> executable. 48 48 Once it is found, all the Perl scripts used for configuration, 49 49 compilation, and installation will use that executable.</p><p>To simplify command execution somewhat, it can help to have … … 62 62 compile and run VR Juggler (without OpenGL Performer support) 63 63 using the version of GCC distributed by SGI. It can be downloaded 64 from <a href="http://freeware.sgi.com/index-by-alpha.html" target="_top">http://freeware.sgi.com/index-by-alpha.html</a>64 from <a class="ulink" href="http://freeware.sgi.com/index-by-alpha.html" target="_top">http://freeware.sgi.com/index-by-alpha.html</a> 65 65 for free. When configuring the source with 66 <span ><strong class="command">configure.pl</strong></span> (described later), use the option66 <span class="command"><strong>configure.pl</strong></span> (described later), use the option 67 67 <code class="option">--with-gcc</code>.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e116"></a>Important Note for Windows Users</h3></div></div></div><p>VR Juggler 1.1 and newer use a lot of C++ features not 68 supported by Visual Studio 6.0. Microsoft <a href="http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/q243/4/51.asp&NoWebContent=1" target="_top">acknowledges</a>68 supported by Visual Studio 6.0. Microsoft <a class="ulink" href="http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/q243/4/51.asp&NoWebContent=1" target="_top">acknowledges</a> 69 69 the issues concerning noncompliance to the C++ Standard with Visual 70 70 Studio 6.0, and it appears that they have no plans to fix these … … 73 73 required. This means that, in addition to a C++ compiler (e.g., GCC), 74 74 the following packages must be installed in order to compile VR 75 Juggler:</p><div class="itemizedlist"><ul type="disc"><li><p>GNU Make 3.79 or newer</p></li><li><p>GNU Autoconf 2.53 or newer</p></li><li><p>GNU Automake 1.8 or newer</p></li></ul></div><p>Additionally, VR Juggler 2.1 and beyond require the <a href="https://realityforge.vrsource.org/view/FlagPoll/" target="_top">Flagpoll</a>75 Juggler:</p><div class="itemizedlist"><ul type="disc"><li><p>GNU Make 3.79 or newer</p></li><li><p>GNU Autoconf 2.53 or newer</p></li><li><p>GNU Automake 1.8 or newer</p></li></ul></div><p>Additionally, VR Juggler 2.1 and beyond require the <a class="ulink" href="https://realityforge.vrsource.org/view/FlagPoll/" target="_top">Flagpoll</a> 76 76 software tool. As of this writing, the minimum required version is 77 77 0.8.1. It is recommended that all of these tools be installed in either … … 87 87 binary dependencies that must be downloaded separately (such as NSPR, 88 88 the Java Developer Kit, a C++ compiler, etc.).</p><p>The current list of <span class="emphasis"><em>required</em></span> software 89 packages 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>):89 packages is as follows:</p><div class="itemizedlist"><ul type="disc"><li><p>CppDOM (<a class="ulink" href="http://www.sourceforge.net/projects/xml-cppdom/" target="_top">http://www.sf.net/projects/xml-cppdom/</a>): 90 90 A lightweight, easy-to-use XML parser written in C++. CppDOM must 91 be 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>): A C++91 be compiled and installed for use with VR Juggler.</p></li><li><p>Boost (<a class="ulink" href="http://www.boost.org/" target="_top">http://www.boost.org/</a>): A C++ 92 92 library providing many powerful utility classes and libraries. 93 93 Boost must be compiled and installed for use with VR 94 Juggler.</p></li><li><p>GMTL (<a href="http://ggt.sourceforge.net/" target="_top">http://ggt.sf.net/</a>): A94 Juggler.</p></li><li><p>GMTL (<a class="ulink" href="http://ggt.sourceforge.net/" target="_top">http://ggt.sf.net/</a>): A 95 95 generic math library that makes use of C++ templates and STL 96 96 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> 97 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>):97 packages:</p><div class="itemizedlist"><ul type="disc"><li><p>NSPR (<a class="ulink" href="http://www.mozilla.org/projects/nspr/" target="_top">http://www.mozilla.org/projects/nspr/</a>): 98 98 The Netscape Portable Runtime, which can be used by VPR for 99 threading and sockets (required on Win32 and Solaris).</p></li><li><p>Java Developer Kit (<a href="http://java.sun.com/" target="_top">http://java.sun.com/</a>): The J2SE99 threading and sockets (required on Win32 and Solaris).</p></li><li><p>Java Developer Kit (<a class="ulink" href="http://java.sun.com/" target="_top">http://java.sun.com/</a>): The J2SE 100 100 SDK (or JDK) is used to compile all the Java code used in the 101 101 Juggler Project. Without it, none of the Java code can be built. 102 102 We require version 1.4 or newer. The Java Standard Edition (J2SE) 103 can be downloaded from <a href="http://java.sun.com/j2se/" target="_top">http://java.sun.com/j2se/</a>.</p></li><li><p>omniORB (<ahref="http://www.jdom.org/" target="_top">http://omniorb.sourceforge.net/</a>):103 can be downloaded from <a class="ulink" href="http://java.sun.com/j2se/" target="_top">http://java.sun.com/j2se/</a>.</p></li><li><p>omniORB (<a class="ulink" href="http://www.jdom.org/" target="_top">http://omniorb.sourceforge.net/</a>): 104 104 A C++ implementation of CORBA 2.3, required for the Tweek C++ 105 API.</p></li><li><p>Doozer (<a href="http://sourceforge.net/projects/doozer" target="_top">http://sourceforge.net/projects/doozer</a>):105 API.</p></li><li><p>Doozer (<a class="ulink" href="http://sourceforge.net/projects/doozer" target="_top">http://sourceforge.net/projects/doozer</a>): 106 106 A collection of makefile stubs written for use with GNU Make and 107 107 intended for simplifying the creation of cross-platform VR Juggler … … 109 109 VR Juggler sample applications.</p></li></ul></div><p>The following are fully optional packages that are primarily of 110 110 interest only to people doing development on the Juggler Suite 111 itself:</p><div class="itemizedlist"><ul type="disc"><li><p>JUnit (<a href="http://www.junit.org/" target="_top">http://www.junit.org/</a>): A unit112 testing framework for Java.</p></li><li><p>CppUnit (<a href="http://cppunit.sourceforge.net/" target="_top">http://cppunit.sourceforge.net/</a>):111 itself:</p><div class="itemizedlist"><ul type="disc"><li><p>JUnit (<a class="ulink" href="http://www.junit.org/" target="_top">http://www.junit.org/</a>): A unit 112 testing framework for Java.</p></li><li><p>CppUnit (<a class="ulink" href="http://cppunit.sourceforge.net/" target="_top">http://cppunit.sourceforge.net/</a>): 113 113 A unit testing framework for C++. The Juggler C++ test suties make 114 114 use of extensions to CppUnit. An extended version of the CppUnit 115 115 source that includes these extensions can be acquired from the 116 116 Juggler Subversion repository in the module 117 <code class="literal">cppunit</code>. Refer to <a href="#section.cvs.access" title="How to Get the Juggler Suite from Subversion">the section called “How to Get the Juggler Suite from Subversion”</a> for instructions about accessing117 <code class="literal">cppunit</code>. Refer to <a class="xref" href="#section.cvs.access" title="How to Get the Juggler Suite from Subversion">the section called “How to Get the Juggler Suite from Subversion”</a> for instructions about accessing 118 118 the Juggler Subversion repository.</p></li></ul></div><p>The third-party dependencies must be downloaded from the sites 119 119 listed above and installed manually. You may also have to compile one or … … 123 123 installed and what versions of tools (such as the JDK) that you 124 124 download.</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="section.cvs.access"></a>How to Get the Juggler Suite from Subversion</h3></div></div></div><p>You can optionally get the Juggler Project as a source code 125 tarball from the website (<a href="http://www.vrjuggler.org/" target="_top">http://www.vrjuggler.org/</a>) or125 tarball from the website (<a class="ulink" href="http://www.vrjuggler.org/" target="_top">http://www.vrjuggler.org/</a>) or 126 126 you can execute the following command from a shell to get the code 127 127 from our Subversion repository:</p><pre class="screen">svn co https://realityforge.vrsource.org/svn/vrjuggler/juggler/trunk juggler … … 130 130 installed separately. Remember that no Java code in VR Juggler can be 131 131 used without the JDK and a working Java version of CORBA.</p><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e255"></a>Boost</h4></div></div></div><p>The minimum required version of Boost, as of this writing, 132 is 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>.132 is 1.31.0. The Boost source can be downloaded from <a class="ulink" href="http://www.sf.net/projects/boost/" target="_top">http://www.sf.net/projects/boost/</a>. 133 133 To compile and install Boost, refer to its installation 134 documentation (<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>).135 Note that you need the command <span ><strong class="command">bjam</strong></span> (referred134 documentation (<a class="ulink" href="http://www.boost.org/more/getting_started.html#Build_Install" target="_top">http://www.boost.org/more/getting_started.html#Build_Install</a>). 135 Note that you need the command <span class="command"><strong>bjam</strong></span> (referred 136 136 to as “<span class="quote">boost-jam</span>” on the Boost download page) to 137 137 build Boost.</p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Important</h3><p>Mac OS X users should compile the Boost libraries using 138 138 the “<span class="quote">darwin</span>” toolset.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e278"></a>CppDOM</h4></div></div></div><p>For XML processing, we use CppDOM 0.6.5 or newer. The source 139 139 and binary distributions for some platforms can be downloaded from 140 <a href="http://www.sf.net/projects/xml-cppdom/" target="_top">http://www.sf.net/projects/xml-cppdom/</a>.140 <a class="ulink" href="http://www.sf.net/projects/xml-cppdom/" target="_top">http://www.sf.net/projects/xml-cppdom/</a>. 141 141 If a binary version is not available for your operating system you 142 142 must compile and install CppDOM yourself. Note that you need SCons 143 (<a href="http://scons.sourceforge.net/" target="_top">http://scons.sourceforge.net/</a>)143 (<a class="ulink" href="http://scons.sourceforge.net/" target="_top">http://scons.sourceforge.net/</a>) 144 144 to build and install CppDOM.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e289"></a>GMTL</h4></div></div></div><p>For high-level mathematical operations, we use GMTL 0.4.12 145 or 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>.146 Note that you need SCons (<a href="http://scons.sourceforge.net/" target="_top">http://scons.sourceforge.net/</a>)145 or newer. The source distribution can be downloaded from <a class="ulink" href="http://www.sf.net/projects/ggt/" target="_top">http://www.sf.net/projects/ggt/</a>. 146 Note that you need SCons (<a class="ulink" href="http://scons.sourceforge.net/" target="_top">http://scons.sourceforge.net/</a>) 147 147 to build and install GMTL.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e300"></a>Netscape Portable Runtime (NSPR)</h4></div></div></div><p>Our operating system abstraction, VPR, can make use of NSPR 148 148 for operating system primitives. On some platforms (IRIX, FreeBSD, … … 150 150 (Win32, HP-UX, and Solaris), it is required. Based on your local 151 151 system, you should decide whether you need NSPR. Binary versions 152 of NSPR can be 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>.152 of NSPR can be downloaded from <a class="ulink" href="ftp://ftp.mozilla.org/pub/mozilla.org/nspr/releases" target="_top">ftp://ftp.mozilla.org/pub/mozilla.org/nspr/releases</a>. 153 153 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="d0e308"></a>Java Developer Kit (also called the J2SE SDK)</h4></div></div></div><p>We make use of the Java programming language in addition to 154 154 C++. Java is used exclusively for GUIs such as Tweek and VRJConfig 155 155 (which is a JavaBean that is loaded into Tweek). To compile the 156 156 Java code, a JDK is necessary. We currently require version 1.4 or 157 newer. The Java Standard Edition can be downloaded from <a href="http://java.sun.com/j2se/" target="_top">http://java.sun.com/j2se/</a>.158 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="d0e319"></a>omniORB</h4></div></div></div><p>omniORB is a C++ implementation of CORBA 2.3. It is required157 newer. The Java Standard Edition can be downloaded from <a class="ulink" href="http://java.sun.com/j2se/" target="_top">http://java.sun.com/j2se/</a>. 158 More information can be found at <a class="ulink" 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="d0e319"></a>omniORB</h4></div></div></div><p>omniORB is a C++ implementation of CORBA 2.3. It is required 159 159 in order to compile the Tweek C++ API. At this time, the Tweek C++ 160 160 API is not required for VR Juggler, but this situation will change 161 161 in the near future. At this time, we primarily use omniORB 4.0.x; 162 162 omniORB 3.0 is not supported. omniORB can be downloaded from 163 <a href="http://omniorb.sourceforge.net/" target="_top">http://omniorb.sourceforge.net/</a>.</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><p>In this section, we describe how to compile the Juggler Project.163 <a class="ulink" href="http://omniorb.sourceforge.net/" target="_top">http://omniorb.sourceforge.net/</a>.</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><p>In this section, we describe how to compile the Juggler Project. 164 164 We focus on VR Juggler as a whole, but information about some of the 165 165 individual components is provided later.</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e332"></a>Important Note Regarding Compiling</h3></div></div></div><p>You have downloaded <span class="emphasis"><em>developmental</em></span> code. It … … 167 167 itself can be a little complicated for anyone who does not have some 168 168 background in using Subversion, Autoconf, C++, and 169 <span ><strong class="command">make</strong></span> or Visual Studio.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e343"></a>Compiling the Juggler Suite of Tools</h3></div></div></div><p>This section explains how to get, configure, and compile all of169 <span class="command"><strong>make</strong></span> or Visual Studio.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e343"></a>Compiling the Juggler Suite of Tools</h3></div></div></div><p>This section explains how to get, configure, and compile all of 170 170 the tools that make up VR Juggler. Each tool compiles to its own 171 171 library and can be installed individually. (Refer to the … … 173 173 information about the specific modules.)</p><p>To build VR Juggler on Windows, you must use the Visual Studio 174 174 solution. After getting the dependencies needed to compile VR Juggler 175 (see the next section), refer to the <a href="README-WINDOWS.html" target="_top">README-WINDOWS.html</a> file located in175 (see the next section), refer to the <a class="ulink" href="README-WINDOWS.html" target="_top">README-WINDOWS.html</a> file located in 176 176 this 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="d0e356"></a>Per-Module Dependencies</h4></div></div></div><p>Here, we provide per-module dependency information. Given 177 177 that the dependencies for any single module are met, the modules … … 278 278 to find the information it needs with no extra work on the part of 279 279 the user.</p><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Important</h3><p>If Flagpoll is not installed in a place where the 280 <span ><strong class="command">aclocal</strong></span> tool searches for280 <span class="command"><strong>aclocal</strong></span> tool searches for 281 281 <code class="filename">.m4</code> files by default, then it is necessary 282 to extend <span ><strong class="command">aclocal</strong></span>'s search path. This is282 to extend <span class="command"><strong>aclocal</strong></span>'s search path. This is 283 283 done by setting the environment variable 284 284 <code class="envar">ACLOCAL_FLAGS</code> to “<span class="quote"><code class="literal">-I … … 288 288 configured. The Juggler Suite makes use of the well-known, widely 289 289 used GNU tools Autoconf and GNU Make. We provide a wrapper script 290 written in Perl called <span ><strong class="command">configure.pl</strong></span> that gets290 written in Perl called <span class="command"><strong>configure.pl</strong></span> that gets 291 291 the process started.</p><p>The Juggler build is highly automated. The trickiest part is 292 292 telling the build where to find the third-party dependencies. This … … 312 312 <code class="filename">/usr/local</code>, which suggests that the 313 313 authors of those tools generally expect their software to be in 314 <code class="filename">/usr/local</code>.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="using.configure.pl"></a>Using <span ><strong class="command">configure.pl</strong></span></h5></div></div></div><p>In the base <code class="filename">juggler</code> source314 <code class="filename">/usr/local</code>.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="using.configure.pl"></a>Using <span class="command"><strong>configure.pl</strong></span></h5></div></div></div><p>In the base <code class="filename">juggler</code> source 315 315 directory, we have a “<span class="quote">global</span>” configure script 316 written in Perl called <span ><strong class="command">configure.pl</strong></span>. To get316 written in Perl called <span class="command"><strong>configure.pl</strong></span>. To get 317 317 the command-line options for this script, use one of the 318 318 following (the second being much more detailed):</p><pre class="screen">./configure.pl --help … … 321 321 need. To get this text, enter:</p><pre class="screen">./configure.pl --all-help</pre><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Important</h3><p>In order for this to work, the configure script for 322 322 each of the Juggler modules must be generated. This can 323 be done manually by running <span ><strong class="command">autogen.sh</strong></span>323 be done manually by running <span class="command"><strong>autogen.sh</strong></span> 324 324 in the top-level <code class="filename">juggler</code> directory. 325 It use is simple:</p><pre class="screen">./autogen.sh</pre><p>This <span ><strong class="command">autogen.sh</strong></span> script must be325 It use is simple:</p><pre class="screen">./autogen.sh</pre><p>This <span class="command"><strong>autogen.sh</strong></span> script must be 326 326 run from the directory where it exists. Do not try to run 327 327 it from a build directory or any other place in the 328 328 Juggler source tree. The same holds for the individual 329 <span ><strong class="command">autogen.sh</strong></span> scripts in the various330 modules, should you need to run one individually.</p></div><p><span ><strong class="command">configure.pl</strong></span> can run in a329 <span class="command"><strong>autogen.sh</strong></span> scripts in the various 330 modules, should you need to run one individually.</p></div><p><span class="command"><strong>configure.pl</strong></span> can run in a 331 331 unique “<span class="quote">build</span>” directory or in the directory where 332 332 it resides. Here is how we (the Juggler Team) have been using … … 335 335 they will not be listed here).</p><pre class="screen">mkdir build.linux.posix</pre><p>This example using an ad hoc naming convention 336 336 based on operating system and threading subsystem. Other 337 examples could be <code class="filename">build. irix.sproc</code>,337 examples could be <code class="filename">build.linux.posix</code>, 338 338 <code class="filename">build.solaris.nspr</code>, 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. 339 339 This is when you must tell the module configure scripts 340 where all the package dependencies are found.</p><pre class="screen">../configure.pl --prefix=$HOME/vrjuggler- 2.4--with-java-orb=JDK</pre><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Important</h3><p>You will probably have to specify the path to340 where all the package dependencies are found.</p><pre class="screen">../configure.pl --prefix=$HOME/vrjuggler-3.0 --with-java-orb=JDK</pre><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Important</h3><p>You will probably have to specify the path to 341 341 your local Boost installation using the option 342 342 <code class="option">--with-boost</code> unless it is installed … … 354 354 In this case, you must also specify the option 355 355 <code class="option">--with-boost-includes=/home/user1/pkgs/boost/include/boost-1_34</code> 356 when running <span ><strong class="command">configure.pl</strong></span>.</p></div></li></ol></div><p>By default, the configuration process will configure VR356 when running <span class="command"><strong>configure.pl</strong></span>.</p></div></li></ol></div><p>By default, the configuration process will configure VR 357 357 Juggler and all of its dependencies. This includes Sonix, which 358 358 is an interesting special case. Sonix can make use of Audiere, … … 361 361 out</span>” its sound APIs. This means that Sonix and the VR 362 362 Juggler Sound Manager can still be used in applications, but no 363 audio will be heard at run time. See <a href="#sonix.compile.section" title="Sonix">the section called “Sonix”</a> for more information about363 audio will be heard at run time. See <a class="xref" href="#sonix.compile.section" title="Sonix">the section called “Sonix”</a> for more information about 364 364 how to configure Sonix to use Audiere, OpenAL, or 365 AudioWorks.</p><p>For example uses of <span ><strong class="command">configure.pl</strong></span>, take365 AudioWorks.</p><p>For example uses of <span class="command"><strong>configure.pl</strong></span>, take 366 366 a look at the Wiki page relating to building from source 367 (<a href="http://www.vrjuggler.org/twiki_public/bin/view/Juggler/BuildingFromSvn" target="_top">http://www.vrjuggler.org/twiki_public/bin/view/Juggler/BuildingFromSvn</a>).367 (<a class="ulink" href="http://www.vrjuggler.org/twiki_public/bin/view/Juggler/BuildingFromSvn" target="_top">http://www.vrjuggler.org/twiki_public/bin/view/Juggler/BuildingFromSvn</a>). 368 368 It is not a replacement for this document, but it shows how 369 369 some members of the Juggler team configure VR Juggler. It also 370 370 has information on more advanced uses of 371 <span ><strong class="command">configure.pl</strong></span> that are beyond the scope of372 this document.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="d0e896"></a>Using Locally Installed Software</h5></div></div></div><p>As noted in <a href="#source.code.section" title="Getting the Source Code and the Dependencies">the section called “Getting the Source Code and the Dependencies”</a>, VR371 <span class="command"><strong>configure.pl</strong></span> that are beyond the scope of 372 this document.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h5 class="title"><a name="d0e896"></a>Using Locally Installed Software</h5></div></div></div><p>As noted in <a class="xref" href="#source.code.section" title="Getting the Source Code and the Dependencies">the section called “Getting the Source Code and the Dependencies”</a>, VR 373 373 Juggler depends on several external software packages. As an 374 374 example, consider the case where the Boost libraries are … … 376 376 the headers in 377 377 <code class="filename">/home/user1/pkgs/boost/include</code>. To use 378 this installation, run <span ><strong class="command">configure.pl</strong></span> as378 this installation, run <span class="command"><strong>configure.pl</strong></span> as 379 379 follows:</p><pre class="screen">../configure.pl --with-boost=/home/user1/pkgs/boost</pre></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><p>Once the configuration process is complete, the code can be 380 380 compiled. Remember that we require the use of GNU make 3.78 or … … 387 387 tools in the Juggler Suite are compiled correctly. For the most part, 388 388 this duplicates information that can be found on the Wiki page 389 relating to building from source (<a href="http://www.vrjuggler.org/twiki_public/bin/view/Juggler/BuildingFromSvn" target="_top">http://www.vrjuggler.org/twiki_public/bin/view/Juggler/BuildingFromSvn</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><p>Sonix wraps other audio subsystems such as OpenAL (<ahref="http://www.openal.org/" target="_top">www.openal.org</a>), Audiere390 (<a href="http://audiere.sf.net/" target="_top">audiere.sf.net</a>), or391 AudioWorks (<a href="http://www.multigen.com/" target="_top">multigen.com</a>). At least one389 relating to building from source (<a class="ulink" href="http://www.vrjuggler.org/twiki_public/bin/view/Juggler/BuildingFromSvn" target="_top">http://www.vrjuggler.org/twiki_public/bin/view/Juggler/BuildingFromSvn</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><p>Sonix wraps other audio subsystems such as OpenAL (<a class="ulink" href="http://www.openal.org/" target="_top">www.openal.org</a>), Audiere 390 (<a class="ulink" href="http://audiere.sf.net/" target="_top">audiere.sf.net</a>), or 391 AudioWorks (<a class="ulink" href="http://www.multigen.com/" target="_top">multigen.com</a>). At least one 392 392 of these packages must be installed for use by Sonix in order to 393 393 hear sounds in VR Juggler applications. Once you have all the 394 394 necessary source code and third-party package installations, add 395 395 one or more of the following options to your 396 <span ><strong class="command">configure.pl</strong></span> command line to enable the396 <span class="command"><strong>configure.pl</strong></span> command line to enable the 397 397 appropriate audio subsystem:</p><div class="itemizedlist"><ul type="disc"><li><p><code class="option">--enable-openal 398 398 --with-openal=<OPENAL_PATH></code>: Enable the use … … 412 412 fact. OpenAL and Audiere can be compiled together, 413 413 however.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="tweek.build.section"></a>Tweek</h4></div></div></div><p>Tweek needs JDK 1.4 or newer and a C++ CORBA implementation. 414 Currently, we primarily use omniORB 4.0. Visit the <a href="http://omniorb.sourceforge.net/" target="_top">omniORB website</a> to 415 download omniORB.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>IRIX users must configure Tweek (and its VPR dependency) 416 to use the POSIX subsystem or the NSPR subsystem. omniORB 417 <span class="emphasis"><em>will not work</em></span> with SPROC threads. To 418 configure VPR to use either POSIX threads or NSPR threads, pass 419 either <code class="option">--enable-subsystem=POSIX</code> or 420 <code class="option">--enable-subsystem=NSPR</code> respectively to 421 <span><strong class="command">configure.pl</strong></span>.</p></div><p>For the following steps, assume that you have omniORB 414 Currently, we primarily use omniORB 4.0. Visit the <a class="ulink" href="http://omniorb.sourceforge.net/" target="_top">omniORB website</a> to 415 download omniORB.</p><p>For the following steps, assume that you have omniORB 422 416 installed in <code class="filename"><OMNIORB_PATH></code>. Assuming 423 417 you have the external packages installed, do the following from juggler/trunk/INSTALL.txt
r19949 r20738 1 2 1 3 2 Building and Installing the Juggler Project (Version 2.3) … … 45 44 46 45 You have downloaded the source code for Version 2.3 of the Juggler Project. 47 This is the code that will become VR Juggler 2.4, and it is the code that48 is used to create the VR juggler 2.4pre-releases. Please be aware that46 This is the code that will become VR Juggler 3.0, and it is the code that 47 is used to create the VR Juggler 3.0 pre-releases. Please be aware that 49 48 this code represents a work in progress, and if you acquired it directly 50 49 from Subversion rather than using a pre-packaged source code snapshot, the … … 272 271 Important 273 272 274 Mac OS X users should compile the Boost libraries using the "darwin"275 toolset.273 Mac OS X users should compile the Boost libraries using the 274 "darwin" toolset. 276 275 277 276 … … 688 687 689 688 In the base juggler source directory, we have a "global" configure script 690 written in Perl called configure.pl. To get the command- line options for689 written in Perl called configure.pl. To get the command-line options for 691 690 this script, use one of the following (the second being much more detailed): 692 691 … … 729 728 This example using an ad hoc naming convention based on operating 730 729 system and threading subsystem. Other examples could be 731 build. irix.sproc, build.solaris.nspr, etc.730 build.linux.posix, build.solaris.nspr, etc. 732 731 733 732 2. Enter the new build directory. … … 741 740 742 741 743 ../configure.pl --prefix=$HOME/vrjuggler- 2.4--with-java-orb=JDK742 ../configure.pl --prefix=$HOME/vrjuggler-3.0 --with-java-orb=JDK 744 743 745 744 … … 855 854 primarily use omniORB 4.0. Visit the omniORB website to download omniORB. 856 855 857 858 Note859 860 IRIX users must configure Tweek (and its VPR dependency) to use the POSIX861 subsystem or the NSPR subsystem. omniORB will not work with SPROC threads.862 To configure VPR to use either POSIX threads or NSPR threads, pass either -863 -enable-subsystem=POSIX or --enable-subsystem=NSPR respectively to864 configure.pl.865 866 856 For the following steps, assume that you have omniORB installed in 867 857 <OMNIORB_PATH>. Assuming you have the external packages installed, do the juggler/trunk/README.html
r17626 r20738 1 1 <html><head> 2 2 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 3 <title>Juggler Project Overview</title><link rel="stylesheet" href="base_style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.68.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>Juggler Project Overview</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><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#d0e15">Introduction</a></span></dt><dt><span class="section"><a href="#d0e26">Compiling</a></span></dt><dt><span class="section"><a href="#modules-section">Modules</a></span></dt><dd><dl><dt><span class="section"><a href="#d0e42">VR Juggler</a></span></dt><dt><span class="section"><a href="#d0e56">VR Juggler Portable Runtime (VPR)</a></span></dt><dt><span class="section"><a href="#d0e93">Juggler Configuration and Control Library (JCCL)</a></span></dt><dt><span class="section"><a href="#d0e117">Gadgeteer</a></span></dt><dt><span class="section"><a href="#d0e131">Sonix</a></span></dt><dt><span class="section"><a href="#d0e147">Tweek</a></span></dt><dt><span class="section"><a href="#d0e163">VRJConfig</a></span></dt></dl></dd><dt><span class="section"><a href="#d0e175">VR Juggler 2.x</a></span></dt></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><p>Congratulations, you have downloaded the source code to the Juggler 4 Project, open source software for virtual reality from the <a href="http://www.vrac.iastate.edu/" target="_top">Virtual Reality Applications 5 Center</a> at <a href="http://www.iastate.edu/" target="_top">Iowa State 6 University</a>. Within this document, you will find information about 7 the new VR Juggler 2.x directory structure including descriptions of all 8 the component modules that make up the Juggler Project. Instructions for 9 building the individual modules can be found within the specific module 10 directories and on the VR Juggler website.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e26"></a>Compiling</h2></div></div></div><p>For information on compiling the source code, refer to either the 11 <code class="filename">INSTALL.txt</code> or <code class="filename">INSTALL.html</code> file 12 found in this directory.</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="modules-section"></a>Modules</h2></div></div></div><p>The Juggler Project is made up of several modules that have evolved 13 from the original VR Juggler source tree. Within this section, we describe 14 each of the modules, what they are used for, and, when possible, how they 15 relate to VR Juggler 1.0.</p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e42"></a>VR Juggler</h3></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e45"></a>Directory</h4></div></div></div><p><code class="filename">juggler/modules/vrjuggler</code></p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e51"></a>Description</h4></div></div></div><p>VR Juggler is still VR Juggler. There are many new features in 16 VR Juggler since the 1.0 series, but in essence, it is still the same 17 familiar tool. Of the projects listed below, VR Juggler depends on 18 VPR, JCCL, Sonix, and Gadgeteer. Its individual components have simply 19 been broken out into individually developed modules. More information 20 about the latest version of VR Juggler is given in the following 21 section.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e56"></a>VR Juggler Portable Runtime (VPR)</h3></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e59"></a>Directory</h4></div></div></div><p><code class="filename">juggler/modules/vapor</code></p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e65"></a>Description</h4></div></div></div><p>VPR is the foundation for all the Juggler modules. It provides 22 an object-oriented, cross-platform abstraction layer to common 23 operating system features such as threads, semaphores, and sockets. 24 All the other modules depend on VPR so that they may be ported easily 25 to other platforms. In VR Juggler 1.0, VPR was the collection of 26 directories Threads, SharedMem, and Sync. Since then, that code has 27 been collected into a single library and greatly extended into what is 28 now VPR.</p><p>VPR itself contains a great deal of platform-specific code. It 29 categorizes this code into subsystems, and various subsystems may be 30 chosen depending upon the target platform and target threading system. 31 For example, on IRIX, there are three possible subsystems: SPROC, 32 POSIX, and Netscape Portable Runtime (NSPR). Win32, on the other hand, 33 only uses the NSPR subsystem. The subsystems are:</p><div class="itemizedlist"><ul type="disc"><li><p>SPROC (IRIX only)</p></li><li><p>POSIX (UNIX-based platforms only)</p></li><li><p>NSPR (all platforms, required on Win32 and Mac OS X)</p></li></ul></div><p>Because VPR is the foundation for all the other modules, it is 34 important to choose the right subsystem.</p><p>Choosing the correct subsystem depends on many factors. For 35 example, which of the subsystems are supported on the desired target 36 platform? Are there compatibility issues with software outside the 37 Juggler Project? In most cases, however, the choice is 38 straightforward. Indeed, IRIX is the only platform that presents any 39 real issues. In particular, the use of OpenGL Performer from SGI 40 raises important compatibility concerns. SPROC threads are the only 41 threads that are stable with OpenGL Performer (on IRIX). POSIX threads 42 will work, but applications may sometimes crash on startup. As of this 43 writing, OpenGL Performer does not work at all with NSPR. Other 44 software may pose similar problems, and it is important to know the 45 needs of other tools when configuring VPR.</p><p>On platforms other than IRIX, the choice is relatively simple. 46 If NSPR is available, its use is recommended. If NSPR is not 47 available, POSIX threads is the next logical choice--at least on 48 UNIX-based platforms. On Win32 and Mac OS X, NSPR is required.</p><p>As mentioned above, all the other modules depend on VPR, so it 49 must be compiled before anything else. For more information on 50 compiling VPR, refer to 51 <code class="filename">modules/vapor/INSTALL.txt</code>.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e93"></a>Juggler Configuration and Control Library (JCCL)</h3></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e96"></a>Directory</h4></div></div></div><p><code class="filename">juggler/modules/jackal</code></p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e102"></a>Description</h4></div></div></div><p>JCCL provides the configuration layer for VR Juggler and other 52 modules. The config chunks and reusable configuration editor JavaBeans 53 come from JCCL. These JavaBeans are used by the VR Juggler 54 configuration editor tool, VRJConfig (see below). In essence, JCCL is 55 the VR Juggler 1.0 Config directory with many new features including 56 XML-based config files.</p><p>To build the JCCL C++ library, CppDOM is required for parsing 57 XML. CppDOM is a lightweight XML parser written in C++ and designed to 58 provide an interface similar to JDOM. More information can be found at 59 <a href="http://xml-cppdom.sourceforge.net/" target="_top">http://xml-cppdom.sourceforge.net/</a>.</p><p>To build the configuration editor JavaBeans, JDOM and the Tweek 60 Java API are required. Tweek is another module in the Juggler Project, 61 and it will be built automatically as a dependency of JCCL. JDOM comes 62 with the Juggler Project source code and can be found in the directory 63 <code class="filename">juggler/external/jdom</code>.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e117"></a>Gadgeteer</h3></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e120"></a>Directory</h4></div></div></div><p><code class="filename">juggler/modules/gadgeteer</code></p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e126"></a>Description</h4></div></div></div><p>Gadgeteer is made up of the code that was formerly in the VR 64 Juggler 1.0 Input directory. It contains all the drivers used for VR 65 Juggler input devices, and it contains the high-level Input Manager. 66 The goal with Gadgeteer is to mold it into the first dynamically 67 loadable component within the VR Juggler microkernel. At this time, it 68 must still be compiled in, but we hope to generalize the concepts of 69 VR Juggler Managers to the point that the kernel knows nothing about 70 them until they are loaded at run time.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e131"></a>Sonix</h3></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e134"></a>Directory</h4></div></div></div><p><code class="filename">juggler/modules/sonix</code></p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e140"></a>Description</h4></div></div></div><p>Sonix provides an interface useful to many simple VR and 71 entertainment applications to trigger and position sounds in 3D. This 72 library provides simple audio sound objects on top of several audio 73 APIs. The interface to Sonix is kept very simple in order to get 74 people up and running with sound as fast as possible.</p><p>The interface to sonix is kept very simple in order to get 75 people up and running with sound as fast as possible. Sonix is 76 reconfigurable allowing audio APIs to be safely swapped out at runtime 77 without the dependent systems noticing. Systems using this layer 78 expect to be completely portable.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e147"></a>Tweek</h3></div></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e150"></a>Directory</h4></div></div></div><p><code class="filename">juggler/modules/tweek</code></p></div><div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="d0e156"></a>Description</h4></div></div></div><p>Tweek is a cross-platform, cross-language library consisting of 79 a C++ API and a Java API. Its purpose is to provide a convenient 80 mechanism for a Java-based GUI to interact with a complex C++ library 81 or application. The Tweek GUI can be run in virtual environments, 82 external on a palm top, or on the desktop next to a running 83 application. Each of these methods gives a familiar 2D widget set that 84 can control applications flexibly. To provide this capability, it uses 85 CORBA.</p><p>The Java code in Tweek includes the Tweek Java API and the Tweek 86 JavaBean loader application. The Java API is provided to make the use 87 of JavaBeans and CORBA simpler for programmers. The JavaBean loader 88 application simply loads the Beans it finds and presents them to the 89 user in some sort of structured manner (for example, a collection of 90 icons with web-style navigation).</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="d0e163"></a>VRJConfig</h3></div></div></div><p>VRJConfig is the configuration editor for VR Juggler. It is a 91 complete rewrite of VjControl, both in terms of the user interface and 92 the back-end code. The new interface is based on open discussion and 93 feedback from users of VR Juggler 1.0 and VjControl.</p><p>The back-end is much more extensible. It allows users to write 94 plug-in editors to simplify complex editing tasks. User-defined 95 configuration elements can be handled in a much more dynamic manner as 96 well. No modification of VR Juggler or JCCL “<span class="quote">system</span>” files 97 must be made to get user-defined elements into the editor.</p><p>VRJConfig is itself a JavaBean that is loaded into the Tweek Java 98 GUI. VRJConfig uses JavaBeans internally to facilitate user extensions. 99 All in all, VRJConfig is a highly dynamic, powerful editor for VR 100 Juggler configurations.</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="d0e175"></a>VR Juggler 2.x</h2></div></div></div><p>TODO... (this is the version number of the next release of 101 Juggler)</p></div></div></body></html> 3 <title>Juggler Project Overview</title><link rel="stylesheet" href="base_style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.73.0"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="d0e1"></a>Juggler Project Overview</h2></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><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#d0e15">Introduction</a></span></dt><
