| 1 |
<html><head> |
|---|
| 2 |
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> |
|---|
| 3 |
<title>Building and Installing the Juggler Project</title><link rel="stylesheet" href="base_style.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.55.0"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article"><div class="titlepage"><div><h1 class="title"><a name="d0e3"></a>Building and Installing the Juggler Project</h1></div><div><div class="authorgroup"><div class="author"><h3 class="author">The Juggler Team</h3></div></div></div><div><p class="pubdate">$Date$</p></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="#d0e17">Introduction</a></dt><dd><dl><dt><a href="#d0e32">Important Notes for IRIX Users</a></dt><dt><a href="#d0e116">Important Note for Win32 Users</a></dt></dl></dd><dt><a href="#source.code.section">Getting the Source Code</a></dt><dd><dl><dt><a href="#d0e184">How to get the Juggler Suite and external package dependencies</a></dt><dt><a href="#using.cvs-gather.section">Using cvs-gather</a></dt></dl></dd><dt><a href="#compile.section">Compiling</a></dt><dd><dl><dt><a href="#d0e388">Important Note Regarding Compiling</a></dt><dt><a href="#d0e399">Compiling the Juggler Suite of Tools</a></dt><dt><a href="#compile.individual.section">Compiling individual tools in the Juggler Suite</a></dt></dl></dd></dl></div><div class="section"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="d0e17"></a>Introduction</h2></div></div><p>This document explains how to build the modules of the Juggler Project from the source code. We begin by explaining some issues related to specific operating systems. We then explain how to get the source code from our CVS repository. (Those users who downloaded a pre-packaged source release can skip ahead to <a href="#using.configure.pl" title="Using configure.pl">the section called “Using configure.pl”</a>). We conclude with instructions on how to build VR Juggler and its individual components.</p><p>Before reading further, we recommend that readers take a 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>). It is a <span class="emphasis"><em>supplement</em></span> to this document containing tips and reminders for those users building the CVS version of VR Juggler. It is not a replacement for this document, nor can it stand on its own as build instructions. You are reading the definitive build instructions; the Wiki page merely provides informal, extra information.</p><div class="section"><div class="titlepage"><div><h3 class="title"><a name="d0e32"></a>Important Notes for IRIX Users</h3></div></div><p>Despite our best efforts, there are some issues related to compiling the Juggler Project on IRIX. We introduce them in this section and explain how to work around them.</p><div class="section"><div class="titlepage"><div><h4 class="title"><a name="d0e37"></a>Perl Version</h4></div></div><p>There are many Perl scripts used as part of getting, configuring, and building the Juggler Suite of tools. In particular, two scripts required for compiling need Perl 5.005 or newer. The version of Perl that ships with IRIX 6.5 is very old (circa 1997) and does not work with many Perl scripts we have written. SGI provides a 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 will be necessary to install that version for our scripts to work. This version is typically installed as <tt>/usr/freeware/bin/perl</tt>.</p><p>Once you have a modern Perl installed, you can run various Perl scripts as follows:</p><pre class="screen">/usr/freeware/bin/perl <script-name></pre><p>The above will be required any time a Perl script fails with an 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. |
|---|
| 4 |
BEGIN failed--compilation aborted at ./configure.pl line 35.</pre><p>Furthermore, it is highly recommended that the <tt>--with-perl</tt> argument be passed to <b>configure.pl</b>. This argument gives all the Autoconf-based configure scripts a hint about where the preferred version of Perl lives. If using <tt>/usr/freeware/bin/perl</tt> to run <b>configure.pl</b>, we recommend that the <b>configure.pl</b> command line appear similar to the 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>--with-perl</tt> is the <span class="emphasis"><em>directory</em></span> where the <b>perl</b> executable can be found. The configure scripts will add this directory to the front of the search path when trying to find a suitable <b>perl</b> executable. Once it is found, all the Perl scripts used for configuration, compilation, and installation will use that executable.</p><p>To simplify command execution somewhat, it can help to have <tt>/usr/freeware/bin</tt> (or whatever path is appropriate) in your path before <tt>/bin</tt> or <tt>/usr/bin</tt> or any of the other myriad directories where Perl might exist on IRIX. In such a situation, none of the above extra steps should be necessary. The correct version of Perl will be found simply by virtue of it being early in your path.</p></div><div class="section"><div class="titlepage"><div><h4 class="title"><a name="d0e100"></a>MIPSpro Compiler Version</h4></div></div><p>Reports have been made on the VR Juggler mailing list regarding compile failures (including segmentation faults within the compiler) occur when using the MIPSpro Compilers Version 7.3.1.1m. We have found 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. Users who do not have MIPSpro or cannot upgrade can compile and run VR Juggler (without OpenGL Performer support) using the version of GCC 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> for free. When configuring the source with <b>configure.pl</b> (described later), use the option <tt>--with-gcc</tt>.</p></div></div><div class="section"><div class="titlepage"><div><h3 class="title"><a name="d0e116"></a>Important Note for Win32 Users</h3></div></div><p>VR Juggler 1.1 uses a lot of C++ templates. Some components of the system will not compile with MS Visual Studio 6.0, and as a result, we currently require the use of Visual Studio 7 (.NET) to compile the source code. We understand that this is an inconvenience, and we are interested in methods for compiling the code with Visual Studio 6. However, due to VC6's poor support for templates and the C++ standard in general, users need to be aware that it may not be possible.</p></div></div><div class="section"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="source.code.section"></a>Getting the Source Code</h2></div></div><p>This section is for those users who want to get the Juggler Project source code from the CVS repository on SourceForge. Those users who have downloaded a pre-packaged version of the source can skip ahead to <a href="#using.configure.pl" title="Using configure.pl">the section called “Using configure.pl”</a>.</p><p>Getting the source code takes a few steps. You have to first download or check out the Juggler Project source code and some external packages such as GMTL, CppDOM, Boost, and possibly NSPR. The steps are listed in the following subsections. The current list of <span class="emphasis"><em>required</em></span> software packages is as follows:</p><div class="itemizedlist"><ul type="disc"><li><p>GMTL (<a href="http://ggt.sourceforge.net/" target="_top">http://ggt.sf.net/</a>): A generic math library that makes use of C++ templates and STL paradigms</p></li><li><p>CppDOM (<a href="http://www.sourceforge.net/projects/xml-cppdom/" target="_top">http://www.sf.net/projects/xml-cppdom/</a>): A lightweight, easy-to-use XML parser written in C++</p></li><li><p>Boost (<a href="http://www.boost.org/" target="_top">http://www.boost.org/</a>): A C++ library providing many powerful tools</p></li><li><p>Doozer++ (<a href="http://www.sf.net/projects/doozer/" target="_top">http://www.sf.net/projects/doozer/</a>): A foundation the development of complex build systems using Autoconf and GNU make. This is the basis for the entire VR Juggler build system.</p></li><li><p>Doozer (<a href="http://www.sf.net/projects/doozer/" target="_top">http://www.sf.net/projects/doozer/</a>): A foundation for rapid makefile development based on GNU make. This is needed for building the sample VR Juggler applications.</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>): The Netscape Portable Runtime, which can be used by VPR for threading and sockets (required on Win32)</p></li><li><p>JDOM (<a href="http://www.jdom.org/" target="_top">http://www.jdom.org/</a>): An XML parser for Java (required only for VjControl, the GUI for editing VR Juggler configuration files)</p></li></ul></div><p>The following describes how to get all of the above except JDOM and NSPR. These must be downloaded separately.</p><div class="section"><div class="titlepage"><div><h3 class="title"><a name="d0e184"></a>How to get the Juggler Suite and external package dependencies</h3></div></div><p>You can optionally get the Juggler Project as a source code tarball from the website (<a href="http://www.vrjuggler.org/" target="_top">http://www.vrjuggler.org/</a>) or you can follow these steps to get the code from our CVS repository.</p><div class="orderedlist"><ol type="1"><li><p>Check out the 'juggler' module using CVS.</p><pre class="screen">cvs -d :pserver:anonymous@cvs.vrjuggler.sourceforge.net:/cvsroot/vrjuggler login |
|---|
| 5 |
cvs -z3 -d :pserver:anonymous@cvs.vrjuggler.sourceforge.net:/cvsroot/vrjuggler co juggler</pre></li><li><p>Get external packages that Juggler depends on. Typically you will run cvs-gather.pl, found in the top-level <tt>juggler</tt> directory. For most users, the follow command will do the job:</p><pre class="screen">./cvs-gather.pl --verbose</pre><p>Ideally, users can just let the command run, but sometimes a password must be entered. The CVS password prompt will appear at such times. Each of the projects downloaded using <b>cvs-gather</b> come from SourceForge, and for anonymous CVS access there is no password. Hence, simply pressing the ENTER key will allow the download to continue.</p><p>You can use the <b>cvs-gather</b> tool, or you can read the file <tt>Gatherrc</tt> and get the packages manually. If you choose not to use <b>cvs-gather</b>, you must be familiar with CVS and with the use of CVS tags to check out code. For more details about <b>cvs-gather</b>, see <a href="#using.cvs-gather.section" title="Using cvs-gather">the section called “Using cvs-gather”</a>. If you choose to follow this step as shown above, you may skip ahead to <a href="#compile.section" title="Compiling">the section called “Compiling”</a>.</p></li></ol></div></div><div class="section"><div class="titlepage"><div><h3 class="title"><a name="using.cvs-gather.section"></a>Using <b>cvs-gather</b></h3></div></div><p><b>cvs-gather</b> is a utility we include in the base <tt>juggler</tt> source directory to help you collect third-party (external) source code that the Juggler Project needs in order to build. To get help on using this tool, use one of the following (the second version gives much more detailed output):</p><pre class="screen">./cvs-gather.pl --help |
|---|
| 6 |
./cvs-gather.pl --manual |
|---|
| 7 |
</pre><div class="section"><div class="titlepage"><div><h4 class="title"><a name="d0e246"></a>Standard use<b></b> of <b>cvs-gather</b></h4></div></div><p>In most cases, <b>cvs-gather</b> can be used as follows:</p><pre class="screen">./cvs-gather.pl |
|---|
| 8 |
</pre><p>All the output will be written to the file <tt>gather.log</tt>. If you would like to see the progress of CVS as it checks out files, run the command this way:</p><pre class="screen">./cvs-gather.pl --verbose |
|---|
| 9 |
</pre></div><div class="section"><div class="titlepage"><div><h4 class="title"><a name="cvs-gather.advanced.section"></a>Advanced use<b></b> of <b>cvs-gather</b></h4></div></div><p>Use of <b>cvs-gather</b> is not required. You can limit what packages are downloaded. You can even skip <b>cvs-gather</b> altogether if you already have all the necessary packages in your system or if you feel like getting these packages manually. For a list of the package dependencies, refer to the file <tt>juggler/Gatherrc</tt>. For more information about the file format, refer to the <b>cvs-gather</b> manual.</p><p>To limit which packages get downloaded through <b>cvs-gather</b>, use the <tt>--target</tt> option, as shown below:</p><pre class="screen">./cvs-gather --target Boost,Doozer++</pre><p>or</p><pre class="screen">./cvs-gather --target Boost --target Doozer++</pre><p>The names given as arguments to <tt>--target</tt> are the module names listed in <tt>juggler/Gatherrc</tt>. Any number of target module names may be listed.</p><p>For <b>cvs-gather</b> to work, it uses a “gather rc” file. This<tt></tt> file specifies the external project CVS locations. <b>cvs-gather</b> reads these CVS locations and then checks each one out locally for use in building the Juggler Project. There are three possible default names for a “gather rc” file:</p><div class="orderedlist"><ol type="1"><li><p><tt>Gatherrc</tt> (in the working directory)</p></li><li><p><tt>.gatherrc</tt> (in the working directory)</p></li><li><p><tt>$HOME/.gatherrc</tt></p></li></ol></div><p><b>cvs-gather</b> searches for these three files by default in the order shown above. Alternatively, a user-defined file (<tt>deps.gatherrc</tt>, for example) can be named on the command line as follows:</p><pre class="screen">./cvs-gather.pl --cfg=deps.gatherrc</pre><p>To simplify shared use of a single configuration file, the contents of the file may be overridden on the command line or through the use of an “overrides” file. The following shows such a file that overrides the CVSROOT settings in <tt>juggler/Gatherrc</tt>:</p><pre class="programlisting"> #JugglerBaseStuff.CVSROOT=patrickh@cvs.vrjuggler.sourceforge.net:/cvsroot/vrjuggler |
|---|
| 10 |
Doozer.CVSROOT = patrickh@cvs.doozer.sourceforge.net:/cvsroot/doozer |
|---|
| 11 |
Doozer++.CVSROOT = patrickh@cvs.doozer.sourceforge.net:/cvsroot/doozer |
|---|
| 12 |
GMTL.CVSROOT = patrickh@cvs.ggt.sourceforge.net:/cvsroot/ggt </pre><p>The current <tt>Gatherrc</tt> only allows anonymous CVS access. To override that, we suggest making per-user override files. To use the override file, just add the argument <tt>--override=<filename></tt> when running <b>cvs-gather</b>.</p><p>The following shows how to run <b>cvs-gather</b> with your own overrides file (called <tt>my_gatheroverride</tt>):</p><pre class="screen">cvs-gather.pl --override=my_gatheroverride</pre><p>If all goes well, you'll get everything you need to compile.</p></div></div></div><div class="section"><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="compile.section"></a>Compiling</h2></div></div><p>In this section, we describe how to compile the Juggler Project. We focus on VR Juggler as a whole, but information about some of the individual components is provided later.</p><div class="section"><div class="titlepage"><div><h3 class="title"><a name="d0e388"></a>Important Note Regarding Compiling</h3></div></div><p>You have downloaded <span class="emphasis"><em>developmental</em></span> code. It may not be stable, and it may not even compile. Compiling VR Juggler itself can be a little complicated for anyone who does not have some background in Autoconf, C++, and <b>make</b>.</p></div><div class="section"><div class="titlepage"><div><h3 class="title"><a name="d0e399"></a>Compiling the Juggler Suite of Tools</h3></div></div><p>This section explains how to get, configure, and compile all of the tools that make up VR Juggler. Each tool compiles to its own library and can be installed individually. (Refer to the <tt>README</tt> file in this directory for more information about the specific modules.)</p><div class="section"><div class="titlepage"><div><h4 class="title"><a name="config.vrjuggler.section"></a>Configuring VR Juggler</h4></div></div><p>Every time you update the source code acquired from CVS and <b>cvs-gather</b>, it is recommended that you run <b>autogen.sh</b>. This script is found in the top-level <tt>juggler</tt> directory, and it is run as follows:</p><pre class="screen">./autogen.sh</pre><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>On Win32, recent versions of Cygwin install Autoconf 2.13 <span class="emphasis"><em>and</em></span> Autoconf 2.5x. Similarly, Automake 1.4 <span class="emphasis"><em>and</em></span> Automake 1.5 are installed. The former versions (2.13 and 1.4) are considered “stable” while the latter are “developmental”. While the VR Juggler build system does work with either set on UNIX-based systems, the build system does not work with Automake 1.5 on Win32. At this time, it is unclear why it does not work, but the following provides a workaround for running <b>autogen.sh</b> on Win32 using the default BASH environment:</p><pre class="screen">ACLOCAL=/usr/autotool/stable/bin/aclocal ./autogen.sh</pre><p>If you are using tcsh, use the following command instead:</p><pre class="screen">env ACLOCAL=/usr/autotool/stable/bin/aclocal ./autogen.sh</pre></div><div class="section"><div class="titlepage"><div><h5 class="title"><a name="using.configure.pl"></a>Using <b>configure.pl</b></h5></div></div><p>In the base <tt>juggler</tt> source directory, we have a “global” configure script written in Perl called <b>configure.pl</b>. To get the command-line options for this script, use one of the following (the second being much more detailed):</p><pre class="screen">./configure.pl --help |
|---|
| 13 |
./configure.pl --manual</pre><p>To configure your system, you will need to see what options all the Autoconf-based configure scripts in VR Juggler need. To get this text, enter:</p><pre class="screen">./configure.pl --all-help</pre><p><b>configure.pl</b> can run in a different “build” directory or in the directory where it resides. 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 reasons to do this away from the main source tree (though they 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 operating system and threading subsystem. Other examples could be <tt>build.irix.sproc</tt>, <tt>build.solaris.nspr</tt>, 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 when you must tell the module configure scripts where all the package dependencies are found. For this description, we will use the term <tt><JDOMPATH></tt> to refer to the JDOM installation. Assume that this is an absolute path (e.g., <tt><JDOMPATH></tt> = <tt>/home/user1/pkgs/jdom</tt>).</p><pre class="screen">../configure.pl --prefix=$HOME/vrjuggler-2.0 --with-jdom="<JDOMPATH>/build/jdom.jar:<JDOMPATH>/lib/xerces.jar"</pre><p>On Win32, remember that the path is given as the full DOS drive path, but <tt>/</tt> should be used instead of <tt>\</tt> as the path separator.</p></li></ol></div><p>By default, the configuration process will configure VR Juggler and all of its dependencies. This includes Sonix, which is an interesting special case. Sonix can make use of OpenAL or AudioWorks to provide spatialized sound in VR Juggler applications. If neither of those packages is found, Sonix will “stub out” its sound APIs. This means that Sonix and the VR Juggler Sound Manager can still be used in applications, but no audio will be heard at run time. See <a href="#sonix.compile.section" title="Sonix (individual)">the section called “Sonix (individual)”</a> for more information about how to configure Sonix to use OpenAL or AudioWorks.</p><p>For example uses of <b>configure.pl</b>, take a 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>). It is not a replacement for this document, but it shows how some members of the Juggler team configure VR Juggler. It also has information on more advanced uses of <b>configure.pl</b> that are beyond the scope of this document.</p></div><div class="section"><div class="titlepage"><div><h5 class="title"><a name="d0e535"></a>Using locally installed software</h5></div></div><p>As noted in <a href="#source.code.section" title="Getting the Source Code">the section called “Getting the Source Code”</a>, VR Juggler depends on several external software packages. The <b>cvs-gather</b> tool collects the source code for those packages into the directory <tt>juggler/external</tt>, but some users may already have one or more of these installed locally. For those users, they have the option of referring to the local installation(s) and limiting the work done by <b>cvs-gather</b> (see <a href="#cvs-gather.advanced.section" title="Advanced use of cvs-gather">the section called “Advanced use of cvs-gather”</a> for more details).</p><p>As an example, consider the case where the Boost C++ library is installed in <tt>/usr/local</tt> with the headers in <tt>/usr/local/include</tt>. To use this instead of the version downloaded into <tt>juggler/external</tt>, run <b>configure.pl</b> as follows:</p><pre class="screen">../configure.pl --with-boostroot=/usr/local</pre><p>This option could of course be mixed in with those shown in the previous section. In this situation, all paths for the Boost headers will reference <tt>/usr/local/include</tt>; everything in <tt>juggler/external/boost</tt> will be ignored.</p><p>There are similar options for GMTL and CppDOM. Other external dependencies not downloaded with <b>cvs-gather</b>, such as NSPR and JDOM, require the use of such command-line arguments. Refer to the output from running <b>configure.pl --all-help</b> for more detailed information.</p></div></div><div class="section"><div class="titlepage"><div><h4 class="title"><a name="compile.vrjuggler.section"></a>Compiling VR Juggler</h4></div></div><p>Once the configuration process is complete, the code can be 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 Juggler. For those who are not interested in developing VR Juggler or its component modules, it is recommended that you install the software and use the installed version for application development. Do this as follows:</p><pre class="screen">gmake install</pre></li></ol></div></div></div><div class="section"><div class="titlepage"><div><h3 class="title"><a name="compile.individual.section"></a>Compiling individual tools in the Juggler Suite</h3></div></div><p>Sometimes you do not want to build everything in the Juggler Suite. Here are steps for configuring/building each package individually.</p><div class="section"><div class="titlepage"><div><h4 class="title"><a name="d0e606"></a>VPR (individual)</h4></div></div><p>VPR can be configured a number of ways. Except when building on Win32, no external packages are required. For Win32, NSPR (<a href="http://www.mozilla.org/" target="_top">www.mozilla.org</a>) is required. To build VPR, do the following from the top-level <tt>juggler</tt> directory:</p><div class="orderedlist"><ol type="1"><li><pre class="screen">mkdir build.vpr |
|---|
| 14 |
cd build.vpr</pre></li><li><pre class="screen">../configure.pl --module=VPR --prefix=$HOME/vpr-inst</pre></li><li><pre class="screen">gmake debug install-debug</pre></li><li><pre class="screen">setenv VPR_BASE_DIR $HOME/vpr-inst</pre></li></ol></div><p>If you want to use NSPR, make sure a binary version is installed. In step 2, add the arguments <tt>--enable-subsystem=NSPR</tt> and <tt>--with-nspr=<path to NSPR></tt>. Once that is done, proceed with steps 3 and 4 as normal.</p></div><div class="section"><div class="titlepage"><div><h4 class="title"><a name="sonix.compile.section"></a>Sonix (individual)</h4></div></div><p>Sonix requires a third-party software package called GMTL (<a href="http://ggt.sf.net/" target="_top">ggt.sf.net</a>). Sonix wraps other audio subsystems such as OpenAL (<a href="http://www.openal.org/" target="_top">www.openal.org</a>) or AudioWorks (<a href="http://www.multigen.com/" target="_top">multigen.com</a>). One of these subsystems are required in order to hear sound. Once you have all the necessary source code and third-party package installations, to the following from the top-level <tt>juggler</tt> directory:</p><div class="orderedlist"><ol type="1"><li><pre class="screen">mkdir build.sonix |
|---|
| 15 |
cd build.sonix</pre></li><li><p>Choose one of the following depending on which subsystem (or both) you want to enable in sonix...</p><pre class="screen">../configure.pl --module=Sonix --prefix=$HOME/sonix-inst --enable-openal --with-oalroot=/usr/local |
|---|
| 16 |
../configure.pl --module=Sonix --prefix=$HOME/sonix-inst --enable-audioworks</pre></li><li><pre class="screen">gmake debug install-debug</pre></li><li><pre class="screen">setenv SNX_BASE_DIR $HOME/sonix-inst</pre></li></ol></div></div><div class="section"><div class="titlepage"><div><h4 class="title"><a name="d0e678"></a>JCCL (individual)</h4></div></div><p>JCCL requires VPR, CppDOM (<a href="http://www.sourceforge.net/projects/xml-cppdom/" target="_top">http://www.sf.net/projects/xml-cppdom/</a>), and JDOM B7 or newer (<a href="http://www.jdom.org/" target="_top">http://www.jdom.org/</a>). To build JCCL, do the following from the top-level <tt>juggler</tt> directory:</p><div class="orderedlist"><ol type="1"><li><pre class="screen">mkdir build.jccl |
|---|
| 17 |
cd build.jccl</pre></li><li><pre class="screen">../configure.pl --module=JCCL --prefix=$HOME/jccl-inst --with-jdom="<JDOMPATH>/build/jdom.jar:<JDOMPATH>/lib/xerces.jar"</pre></li><li><pre class="screen">gmake debug install-debug</pre></li><li><pre class="screen">setenv JCCL_BASE_DIR $HOME/jccl-inst</pre></li></ol></div></div><div class="section"><div class="titlepage"><div><h4 class="title"><a name="d0e709"></a>Gadgeteer (individual)</h4></div></div><p>Gadgeteer depends on JCCL and on VPR. It also needs the third-party math library GMTL (<a href="http://ggt.sourceforge.net/" target="_top">http://ggt.sf.net/</a>). Assuming you have all the source code, do the following from the top-level <tt>juggler</tt> directory:</p><div class="orderedlist"><ol type="1"><li><pre class="screen">mkdir build.gadgeteer |
|---|
| 18 |
cd build.gadgeteer</pre></li><li><pre class="screen">../configure.pl --module=Gadgeteer --prefix=$HOME/gadgeteer-inst --with-jdom="<JDOMPATH>/build/jdom.jar:<JDOMPATH>/lib/xerces.jar"</pre></li><li><pre class="screen">gmake debug install-debug</pre></li><li><pre class="screen">setenv GADGET_BASE_DIR $HOME/gadgeteer-inst</pre></li></ol></div></div><div class="section"><div class="titlepage"><div><h4 class="title"><a name="d0e737"></a>Tweek (individual)</h4></div></div><p>Tweek depends on VPR. It needs JDK 1.3.1, JDOM B7 or newer, and the third-party CORBA implementations omniORB 3.0.4 or newer (C++) and OpenORB 1.2.0 or newer (Java). These packages can be downloaded from the following websites:</p><div class="itemizedlist"><ul type="disc"><li><p>JDOM: <a href="http://www.jdom.org/" target="_top">http://www.jdom.org/</a></p></li><li><p>omniORB: <a href="http://www.omniorb.org/" target="_top">http://www.omniorb.org/</a> or <a href="http://omniorb.sourceforge.net/" target="_top">http://omniorb.sourceforge.net/</a></p></li><li><p>OpenORB: <a href="http://openorb.exolab.org/" target="_top">http://openorb.exolab.org/</a> or <a href="http://openorb.sourceforge.net/" target="_top">http://openorb.sourceforge.net/</a></p></li></ul></div><p>For the following steps, assume that you have omniORB installed in <tt><OMNIORBPATH></tt>, OpenORB is installed in <tt><OPENORBPATH></tt>, and JDOM is installed in <tt><JDOMPATH></tt>.</p><p>IRIX users must configure Tweek (and its VPR dependency) to use the POSIX subsystem or the NSPR subsystem. omniORB <span class="emphasis"><em>will not work</em></span> with SPROC threads. To configure VPR to use either POSIX threads or NSPR threads, pass either <tt>--enable-subsystem=POSIX</tt> or <tt>--enable-subsystem=NSPR</tt> to <b>configure.pl</b> respectively.</p><p>Assuming you have the external packages installed, do the following from the top-level <tt>juggler</tt> directory:</p><div class="orderedlist"><ol type="1"><li><pre class="screen">mkdir build.tweek |
|---|
| 19 |
cd build.tweek</pre></li><li><pre class="screen">../configure.pl --module=Tweek --prefix=$HOME/tweek-inst --with-jdom=<JDOMPATH>/jdom.jar:<JDOMPATH>/xerces.jar --with-cxx-orb=omniORB3 --with-cxx-orb-root=<OMNIORBPATH> --with-java-orb=OpenORB --with-java-orb-jar=<OPENORBPATH>/lib/openorb-1.2.0.jar</pre></li><li><pre class="screen">gmake debug install-debug</pre></li><li><pre class="screen">setenv TWEEK_BASE_DIR $HOME/tweek-inst</pre></li></ol></div><p>If JDK 1.4.0 is used, you do not need OpenORB (or any other third-party CORBA implementation for Java). In that case, pass <tt>--with-java-orb=JDK</tt> to <b>configure.pl</b>.</p><p>Depending on your omniORB installation, you may have to pass extra arguments to <b>configure.pl</b> so that the configuration process can find the <b>omniidl</b> binary and the omniORB libraries. For example, on RedHat Linux 7.2, the following arguments must be specified in addition to the above:</p><pre class="screen">--with-cxx-orb-bin=<OMNIORBPATH>/bin/i586_linux_2.0_glibc --with-cxx-orb-lib=<OMNIORBPATH>/lib/i586_linux_2.0_glibc</pre></div></div></div></div></body></html> |
|---|