root/juggler/tags/2.0.4/INSTALL.txt

Revision 19201, 26.7 kB (checked in by patrick, 2 years ago)

Regen.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1
2
3 Building and Installing the Juggler Project (Version 2.0)
4
5
6 The Juggler Team
7
8  $Date$
9
10 ----------------------------------------------------------------------------
11  Table of Contents
12
13
14
15   Introduction
16
17
18         Important Notes for IRIX Users
19
20         Important Note for Windows Users
21
22
23   Getting the Source Code and the Dependencies
24
25
26         How to Get the Juggler Suite from Subversion
27
28         Downloading Third-Party Dependencies
29
30
31   Compiling
32
33
34         Important Note Regarding Compiling
35
36         Compiling the Juggler Suite of Tools
37
38         Tips for Compiling Individual Tools in the Juggler Suite
39
40
41
42 Introduction
43
44  You have downloaded the source code for Version 2.0 of the Juggler Project.
45  This document explains how to build the modules of the Juggler Project from
46  the source code. We begin by explaining some issues related to specific
47  operating systems. We then explain how to get the source code from our
48  Subversion repository. (Those users who downloaded a pre-packaged source
49  release can skip ahead to the section called "Using configure.pl"). We
50  conclude with instructions on how to build VR Juggler and its individual
51  components.
52
53  Before reading further, we recommend that readers take a look at the Wiki
54  page relating to building from source (http://www.vrjuggler.org/
55  twiki_public/bin/view/Juggler/BuildingFromSvn). It is a supplement to this
56  document containing tips and reminders for those users building the SVN
57  version of VR Juggler. It is not a replacement for this document, nor can
58  it stand on its own as build instructions. You are reading the definitive
59  build instructions; the Wiki page merely provides informal, extra
60  information.
61
62
63 Important Notes for IRIX Users
64
65  Despite our best efforts, there are some issues related to compiling the
66  Juggler Project on IRIX. We introduce them in this section and explain how
67  to work around them.
68
69
70 Perl Version
71
72  There are many Perl scripts used as part of getting, configuring, and
73  building the Juggler Suite of tools. In particular, two scripts required
74  for compiling need Perl 5.005 or newer. The version of Perl that ships with
75  IRIX 6.5 is very old (circa 1997) and does not work with many Perl scripts
76  we have written. SGI provides a much newer version of Perl (5.6.1) with
77  their freeware tools (http://freeware.sgi.com/). It will be necessary to
78  install that version for our scripts to work. This version is typically
79  installed as /usr/freeware/bin/perl.
80
81  Once you have a modern Perl installed, you can run various Perl scripts as
82  follows:
83
84
85   /usr/freeware/bin/perl <script-name>
86
87  The above will be required any time a Perl script fails with an error
88  similar to the following:
89
90
91   Perl 5.005 required--this is only version 5.00404, stopped at ./
92   configure.pl line 35.
93   BEGIN failed--compilation aborted at ./configure.pl line 35.
94
95  Furthermore, it is highly recommended that the --with-perl argument be
96  passed to configure.pl. This argument gives all the Autoconf-based
97  configure scripts a hint about where the preferred version of Perl lives.
98  If using /usr/freeware/bin/perl to run configure.pl, we recommend that the
99  configure.pl command line appear similar to the following:
100
101
102   /usr/freeware/bin/perl configure.pl --with-perl=/usr/freeware/bin
103
104  Note that the value given to --with-perl is the directory where the perl
105  executable can be found. The configure scripts will add this directory to
106  the front of the search path when trying to find a suitable perl
107  executable. Once it is found, all the Perl scripts used for configuration,
108  compilation, and installation will use that executable.
109
110  To simplify command execution somewhat, it can help to have /usr/freeware/
111  bin (or whatever path is appropriate) in your path before /bin or /usr/bin
112  or any of the other myriad directories where Perl might exist on IRIX. In
113  such a situation, none of the above extra steps should be necessary. The
114  correct version of Perl will be found simply by virtue of it being early in
115  your path.
116
117
118 MIPSpro Compiler Version
119
120  Reports have been made on the VR Juggler mailing list regarding compile
121  failures (including segmentation faults within the compiler) occur when
122  using the MIPSpro Compilers Version 7.3.1.1m. We have found upgrading to
123  Version 7.3.1.3m (or newer) fixes the problems.
124
125  A new feature of VR Juggler 1.1 and newer is support for GCC on IRIX. Users
126  who do not have MIPSpro or cannot upgrade can compile and run VR Juggler
127  (without OpenGL Performer support) using the version of GCC distributed by
128  SGI. It can be downloaded from http://freeware.sgi.com/index-by-alpha.html
129  for free. When configuring the source with configure.pl (described later),
130  use the option --with-gcc.
131
132
133 Important Note for Windows Users
134
135  VR Juggler 1.1 and newer use a lot of C++ features not supported by Visual
136  Studio 6.0. Microsoft acknowledges the issues concerning noncompliance to
137  the C++ Standard with Visual Studio 6.0, and it appears that they have no
138  plans to fix these problems. Therefore, we require the use of Visual Studio
139  7.x (.NET 2002 or 2003) or newer to compile the source code.
140
141
142 Getting the Source Code and the Dependencies
143
144  In this section, we explain how to get the Juggler Project source code and
145  the dependencies required to build Juggler. There are two ways to get the
146  source code: from a pre-packaged source release archive or from the
147  Subversion repository on RealityForge. If you got the code from a pre-
148  packaged source archive, that code is a complete "snapshot" of the
149  Subversion repository at the time of release. It contains all dependencies
150  that would otherwise have been acquired using Subversion. It does not
151  contain binary dependencies that must be downloaded separately (such as
152  NSPR, the Java Developer Kit, a C++ compiler, etc.).
153
154  The current list of required software packages is as follows:
155
156
157 *  CppDOM (http://www.sf.net/projects/xml-cppdom/): A lightweight, easy-to-
158    use XML parser written in C++. CppDOM must be compiled and installed for
159    use with VR Juggler.
160
161 *  Boost (http://www.boost.org/): A C++ library providing many powerful
162    utility classes and libraries. Boost must be compiled and installed for
163    use with VR Juggler.
164
165 *  GMTL (http://ggt.sf.net/): A generic math library that makes use of C++
166    templates and STL paradigms. GMTL must be installed for use with VR
167    Juggler.
168
169
170  The following lists semi-optional packages:
171
172
173 *  NSPR (http://www.mozilla.org/projects/nspr/): The Netscape Portable
174    Runtime, which can be used by VPR for threading and sockets (required on
175    Win32 and Solaris).
176
177 *  Java Developer Kit (http://java.sun.com/): The J2SE SDK (or JDK) is used
178    to compile all the Java code used in the Juggler Project. Without it,
179    none of the Java code can be built. We require version 1.4 or newer. The
180    Java Standard Edition (J2SE) can be downloaded from http://java.sun.com/
181    j2se/.
182
183 *  omniORB (http://omniorb.sourceforge.net/): A C++ implementation of CORBA
184    2.3, required for the Tweek C++ API.
185
186
187  The following are fully optional packages that are primarily of interest
188  only to people doing development on the Juggler Suite itself:
189
190
191 *  JUnit (http://www.junit.org/): A unit testing framework for Java.
192
193 *  CppUnit (http://cppunit.sourceforge.net/): A unit testing framework for
194    C++. The Juggler C++ test suties make use of extensions to CppUnit. An
195    extended version of the CppUnit source that includes these extensions can
196    be acquired from the Juggler Subversion repository in the module cppunit.
197    Refer to the section called "How to Get the Juggler Suite from
198    Subversion" for instructions about accessing the Juggler Subversion
199    repository.
200
201
202  The third-party dependencies must be downloaded from the sites listed above
203  and installed manually. You may also have to compile one or more of the
204  packages if binary distributions are not available. Which packages you
205  download depends on what you already have installed. Note carefully which
206  packages are needed based on the software you have installed and what
207  versions of tools (such as the JDK) that you download.
208
209
210 How to Get the Juggler Suite from Subversion
211
212  You can optionally get the Juggler Project as a source code tarball from
213  the website (http://www.vrjuggler.org/) or you can execute the following
214  command from a shell to get the code from our Subversion repository:
215
216
217   svn co https://realityforge.vrsource.org/svn/vrjuggler/juggler/branches/
218   2.0 juggler
219
220
221 Downloading Third-Party Dependencies
222
223  In addition to source the dependencies acquired through Subversion, there
224  are some third-party dependencies that must be installed separately.
225  Remember that no Java code in VR Juggler can be used without the JDK and a
226  working Java version of CORBA.
227
228
229 Boost
230
231  The minimum required version of Boost, as of this writing, is 1.31.0. The
232  Boost source can be downloaded from http://www.sf.net/projects/boost/. To
233  compile and install Boost, refer to its installation documentation (http://
234  www.boost.org/more/getting_started.html#Build_Install). Note that you need
235  the command bjam (referred to as "boost-jam" on the Boost download page) to
236  build Boost.
237
238
239 Important
240
241  Mac OS X users should compile the Boost libraries using the "darwin"
242  toolset.
243
244
245 CppDOM
246
247  For XML processing, we use CppDOM 0.3.2 or newer. The source and binary
248  distributions for some platforms can be downloaded from http://www.sf.net/
249  projects/xml-cppdom/. If a binary version is not available for your
250  operating system you must compile and install CppDOM yourself. Note that
251  you need SCons (http://scons.sourceforge.net/) to build and install CppDOM.
252
253
254 GMTL
255
256  For high-level mathematical operations, we use GMTL 0.3.2 or newer. The
257  source distribution can be downloaded from http://www.sf.net/projects/ggt/.
258  Note that you need SCons (http://scons.sourceforge.net/) to build and
259  install GMTL.
260
261
262 Netscape Portable Runtime (NSPR)
263
264  Our operating system abstraction, VPR, can make use of NSPR for operating
265  system primitives. On some platforms (IRIX, FreeBSD, Linux, Mac OS X), the
266  use of NSPR is strictly optional. On others (Win32, HP-UX, and Solaris), it
267  is required. Based on your local system, you should decide whether you need
268  NSPR. Binary versions of NSPR can be downloaded from ftp://ftp.mozilla.org/
269  pub/mozilla.org/nspr/releases. At this time, we recommend the use of
270  version 4.2 or newer.
271
272
273 Java Developer Kit (also called the J2SE SDK)
274
275  We make use of the Java programming language in addition to C++. Java is
276  used exclusively for GUIs such as Tweek and VRJConfig (which is a JavaBean
277  that is loaded into Tweek). To compile the Java code, a JDK is necessary.
278  We currently require version 1.4 or newer. The Java Standard Edition can be
279  downloaded from http://java.sun.com/j2se/. More information can be found at
280  http://java.sun.com/.
281
282
283 omniORB
284
285  omniORB is a C++ implementation of CORBA 2.3. It is required in order to
286  compile the Tweek C++ API. At this time, the Tweek C++ API is not required
287  for VR Juggler, but this situation will change in the near future. At this
288  time, we primarily use omniORB 4.0.x. omniORB can be downloaded from http:/
289  /omniorb.sourceforge.net/.
290
291  omniORB 3.0 has strange conventions for how installations are made. Within
292  the bin and lib directories, there are platform-specific subdirectories
293  that contain the actual binaries (except when installed on FreeBSD via the
294  Ports Collection). Because of this, several extra options must be specified
295  in order to tell the Tweek configure script where to find everything.
296  Please refer to the section called "Tweek" for more details on this.
297
298
299 Compiling
300
301  In this section, we describe how to compile the Juggler Project. We focus
302  on VR Juggler as a whole, but information about some of the individual
303  components is provided later.
304
305
306 Important Note Regarding Compiling
307
308  You have downloaded developmental code. It may not be stable, and it may
309  not even compile. Compiling VR Juggler itself can be a little complicated
310  for anyone who does not have some background in using Subversion, Autoconf,
311  C++, and make or Visual Studio.
312
313
314 Compiling the Juggler Suite of Tools
315
316  This section explains how to get, configure, and compile all of the tools
317  that make up VR Juggler. Each tool compiles to its own library and can be
318  installed individually. (Refer to the README file in this directory for
319  more information about the specific modules.)
320
321  To build VR Juggler on Windows, you must use the Visual Studio solution.
322  After getting the dependencies needed to compile VR Juggler (see the next
323  section), refer to the README.html file located in the vc7 subdirectory of
324  this directory. Do not bother to the rest of this document.
325
326
327 Per-Module Dependencies
328
329  Here, we provide per-module dependency information. Given that the
330  dependencies for any single module are met, the modules may be reused
331  effectively outside the scope of immersive VR application development.
332  Below, we list the minimum required version for each dependency, and where
333  appropriate, we note which dependencies are optional.
334
335
336 VPR
337
338  VPR provides a cross-platform, object-oriented operating system
339  abstraction. It is the foundation for all other Juggler modules.
340
341
342 *  CppDOM 0.3.2
343
344 *  Boost headers and Boost.Filesystem 1.31.0
345
346 *  NSPR (Windows, Solaris, and HP-UX only) 4.4
347
348
349
350 Tweek C++ API
351
352  Tweek implements a distributed model/view/controller system on top of
353  CORBA. The Tweek C++ API provides the C++ component of that system. Code
354  written on top of the Tweek C++ API normally acts as the model piece of the
355  distributed model/view/controller system.
356
357
358 *  VPR
359
360 *  omniORB 4.0
361
362
363
364 Tweek Java API
365
366  Tweek implements a distributed model/view/controller system on top of
367  CORBA. The Tweek Java API provides the Java component of that system. The
368  main part of the Tweek Java API is the Tweek JavaBean Loader, a GUI
369  application that loads Tweek Beans that normally function as the view and
370  controller pieces of the distributed module/view/controller system.
371
372
373 *  J2SE SDK 1.4
374
375 *  JDOM (included with Juggler source)
376
377 *  Ant (included with Juggler source)
378
379 *  JacORB IDL-to-Java compiler (included with Juggler source)
380
381
382
383 Tweek Python API
384
385  Tweek implements a distributed model/view/controller system on top of
386  CORBA. The Tweek Python API provides the Python component of that system.
387  The main part of the Tweek Java API is the unfinished TweekQt GUI, an
388  application that loads Python modules that normally function as the view
389  and controller pieces of the distributed module/view/controller system.
390
391
392 *  Python 2.3
393
394 *  omniORBpy 2.0
395
396
397
398 JCCL C++ API
399
400  The JCCL C++ API provides an interface for loading XML-based
401  configurations. It includes the run-time reconfiguration feature of
402  Juggler.
403
404
405 *  VPR
406
407
408
409 JCCL Java API
410
411  The JCCL Java API provides a programming interface for editing Juggler
412  configuration files and config definition files as well as JavaBeans for
413  editing these files using a graphical interface.
414
415
416 *  Tweek Java API
417
418 *  TableLayout package (included with Juggler source)
419
420
421
422 JCCL Remote Run-Time Reconfiguration Plug-in (C++)
423
424  The C++ JCCL Remote Run-Time Reconfiguration Plug-in is an optional
425  extension to the JCCL Config Manager for allowing remote manipulation of a
426  Juggler configuration at run time based on Tweek.
427
428
429 *  Tweek C++ API
430
431
432
433 JCCL Remote Run-Time Reconfiguration Plug-in (Java)
434
435  The Java JCCL Remote Run-Time Reconfiguration Plug-in is an optional
436  extension that provides the features needed for a Java-based editor to
437  communicate with the C++ Remote Run-Time Reconfiguration Plug-in to edit
438  Juggler configurations live.
439
440
441 *  Tweek Java API
442
443
444
445 Sonix
446
447  Sonix is an abstraction layer for positional sound software. Sonix itself
448  cannot play audio, but it includes plug-ins based on popular interfaces for
449  playing audio. Each plug-in depends on a specific audio software library.
450
451
452 *  VPR
453
454 *  GMTL 0.1.9
455
456
457
458 Sonix OpenAL Plug-in
459
460
461 *  Sonix
462
463 *  OpenAL
464
465 *  Free ALUT
466
467
468
469 Sonix Audiere Plug-in
470
471
472 *  Sonix
473
474 *  Audiere
475
476
477
478 Sonix AudioWorks Plug-in
479
480
481 *  Sonix
482
483 *  AudioWorks
484
485
486
487 Gadgeteer
488
489  Gadgeteer handles all input devices that can be used by VR Juggler
490  applications.
491
492
493 *  VPR
494
495 *  JCCL
496
497 *  GMTL 0.1.9
498
499 *  X Window System (non-Windows platforms)
500
501
502
503 Gadgeteer Device Driver Plug-ins
504
505  The device driver plug-ins for Gadgeteer are independent components that
506  are discovered and used at run time based on the application configuration.
507  Drivers with dependencies are optional.
508
509
510 *  Gadgeteer
511
512 *  VRPN 06.06 for the VRPN driver plug-in
513
514 *  TrackD API 4 for the TrackD API driver plug-in
515
516 *  Microsoft Speech API for the MS Speech API driver plug-in
517
518
519
520 Gadgeteer Cluster Plug-ins
521
522  The cluster plug-ins extend the functionality of the clustering
523  infrastructure built into Gadgeteer.
524
525
526 *  Gadgeteer
527
528
529
530 VR Juggler
531
532  The VR Juggler module is the unifying piece that pulls all the other
533  Juggler modules together. It provides a virtual platform for VR application
534  development. Real-time rendering is controlled by Draw Managers. The OpenGL
535  Performer Draw Manager is optional.
536
537
538 *  Gadgeteer
539
540 *  Sonix
541
542 *  OpenGL
543
544 *  OpenGL Performer for the optional OpenGL Performer Draw Manager
545
546
547
548 VR Juggler Run-Time Performance Monitoring Plug-in (C++)
549
550  The C++ VR Juggler Run-Time Performance Monitoring Plug-in provides an
551  optional extension to VR Juggler for remote visualization of performance
552  metrics that are captured while running a VR Juggler application.
553  Communication is performed using the Tweek C++ API on top of CORBA.
554
555
556 *  Tweek C++ API
557
558 *  VR Juggler
559
560
561
562 VR Juggler Run-Time Performance Monitoring Plug-in (Java)
563
564  The Java VR Juggler Run-Time Performance Monitoring Plug-in is an optional
565  extension that provides the features needed for Java-based visualization of
566  performance data collected while a VR Juggler application is running. This
567  is another JavaBean handled by the Tweek JavaBean Loader, and it uses CORBA
568  to communicate with the C++ VR Juggler Run-Time Performance Monitoring
569  Plug-in.
570
571
572 *  JCCL Java API
573
574 *  JFreeChart (included with Juggler source)
575
576
577
578 VRJConfig
579
580  VRJConfig is the graphical editor for Juggler configurations. It is a
581  JavaBean loaded by the Tweek JavaBean Loader, and it makes use of the
582  editor Beans provided by the JCCL Java API.
583
584
585 *  JCCL Java API
586
587 *  JGraph (included with Juggler source)
588
589
590
591 Configuring the Juggler Build
592
593  We now explain the process by which the Juggler build is configured. The
594  Juggler Suite makes use of the well-known, widely used GNU tools Autoconf
595  and GNU Make. We provide a wrapper script written in Perl called
596  configure.pl that gets the process started.
597
598  The Juggler build is highly automated. The trickiest part is telling the
599  build where to find the third-party dependencies. This part can be
600  simplified, however, by installing the third-party dependencies in the
601  default location where the search will be performed. In most cases, this is
602  /usr/local, but in others it is /usr. The default search location is
603  determined by whether the dependency is considered to be a fundamental part
604  of the operating system installation (such as OpenGL) or if it is an
605  "add-on" package (such as Boost, GMTL, CppDOM, or omniORB).
606
607  The distinction between /usr/local and /usr is complicated by the fact that
608  most Linux distributions have everything installed in /usr. While Linux may
609  be popular, it should not (yet) be considered a model example of how to do
610  things. In traditional UN*X distributions (BSD and System V), /usr is only
611  used for the fundamental operating system pieces; /usr/local is used for
612  extra bits. The Juggler build is based on these assumptions. Furthermore,
613  most open source software packages (e.g., Boost, omniORB, Perl, Python)
614  default to installing themselves in /usr/local, which suggests that the
615  authors of those tools generally expect their software to be in /usr/local.
616
617
618 Using configure.pl
619
620  In the base juggler source directory, we have a "global" configure script
621  written in Perl called configure.pl. To get the command-line options for
622  this script, use one of the following (the second being much more
623  detailed):
624
625
626   ./configure.pl --help
627   ./configure.pl --manual
628
629  To configure your system, you will need to see what options all the
630  Autoconf-based configure scripts in VR Juggler need. To get this text,
631  enter:
632
633
634   ./configure.pl --all-help
635
636
637 Important
638
639  In order for this to work, the configure script for each of the Juggler
640  modules must be generated. This can be done manually by running autogen.sh
641  in the top-level juggler directory. It use is simple:
642
643
644   ./autogen.sh
645
646  This autogen.sh script must be run from the directory where it exists. Do
647  not try to run it from a build directory or any other place in the Juggler
648  source tree. The same holds for the individual autogen.sh scripts in the
649  various modules, should you need to run one individually.
650
651  configure.pl can run in a unique "build" directory or in the directory
652  where it resides. Here is how we (the Juggler Team) have been using it:
653
654
655   1.  Make a directory for compiling. There are many good reasons to do this
656       away from the main source tree (though they will not be listed here).
657
658
659        mkdir build.linux.posix
660
661       This example using an ad hoc naming convention based on operating
662       system and threading subsystem. Other examples could be
663       build.irix.sproc, build.solaris.nspr, etc.
664
665   2.  Enter the new build directory.
666
667
668        cd build.linux.posix
669
670   3.  Configure all the modules making up VR Juggler. This is when you must
671       tell the module configure scripts where all the package dependencies
672       are found.
673
674
675        ../configure.pl --prefix=$HOME/vrjuggler-2.0 --with-java-orb=JDK
676
677
678      Important
679
680       You will probably have to specify the paths to your local CppDOM,
681       GMTL, and Boost installations using the options --with-cppdom, --with-
682       gmtl, and --with-boost unless they are installed in the default
683       location (/usr/local). By default, Boost 1.31 installs its header
684       files in a subdirectory of include called boost-1_31. That is, if
685       Boost is installed in /home/user1/pkgs/boost, the header files will be
686       in /home/user1/pkgs/boost/include/boost-1_31. In this case, you must
687       also specify the option --with-boost-includes=/home/user1/pkgs/boost/
688       include/boost-1_31 when running configure.pl.
689
690
691  By default, the configuration process will configure VR Juggler and all of
692  its dependencies. This includes Sonix, which is an interesting special
693  case. Sonix can make use of Aaudiere, OpenAL, or AudioWorks to add sound to
694  VR Juggler applications. If none of those packages is found, Sonix will
695  "stub out" its sound APIs. This means that Sonix and the VR Juggler Sound
696  Manager can still be used in applications, but no audio will be heard at
697  run time. See the section called "Sonix" for more information about how to
698  configure Sonix to use Audiere, OpenAL, or AudioWorks.
699
700  For example uses of configure.pl, take a look at the Wiki page relating to
701  building from source (http://www.vrjuggler.org/twiki_public/bin/view/
702  Juggler/BuildingFromSvn). It is not a replacement for this document, but it
703  shows how some members of the Juggler team configure VR Juggler. It also
704  has information on more advanced uses of configure.pl that are beyond the
705  scope of this document.
706
707
708 Using Locally Installed Software
709
710  As noted in the section called "Getting the Source Code and the
711  Dependencies", VR Juggler depends on several external software packages. As
712  an example, consider the case where the GMTL library is installed in
713  /home/user1/pkgs/GMTL with the headers in /home/user1/pkgs/GMTL/include. To
714  use this installation, run configure.pl as follows:
715
716
717   ../configure.pl --with-gmtl=/home/user1/pkgs/GMTL
718
719  The --with-gmtl option could of course be mixed in with those shown in the
720  previous section.
721
722
723 Compiling VR Juggler
724
725  Once the configuration process is complete, the code can be compiled.
726  Remember that we require the use of GNU make 3.78 or newer.
727
728
729   1.  Compile the source tree using GNU make.
730
731
732        gmake build
733
734   2.  Once this completes, you will have a full build of VR Juggler. For
735       those who are not interested in developing VR Juggler or its component
736       modules, it is recommended that you install the software and use the
737       installed version for application development. Do this as follows:
738
739
740        gmake install
741
742
743
744 Tips for Compiling Individual Tools in the Juggler Suite
745
746  In this section, we provide tips for ensuring that individual tools in the
747  Juggler Suite are compiled correctly. For the most part, this duplicates
748  information that can be found on the Wiki page relating to building from
749  source (http://www.vrjuggler.org/twiki_public/bin/view/Juggler/
750  BuildingFromSvn).
751
752
753 Sonix
754
755  Sonix wraps other audio subsystems such as OpenAL (www.openal.org), Audiere
756  (audiere.sf.net), or AudioWorks (multigen.com). At least one of these
757  packages must be installed for use by Sonix in order to hear sounds in VR
758  Juggler applications. Once you have all the necessary source code and
759  third-party package installations, add one or more of the following options
760  to your configure.pl command line to enable the appropriate audio
761  subsystem:
762
763
764 *  --enable-openal --with-openal=<OPENAL_PATH>: Enable the use of OpenAL and
765    tell the build where OpenAL is installed. The default search path is /
766    usr/local.
767
768 *  --enable-audiere --with-audiere=<AUDIERE_PATH>: Enable the use of Audiere
769    and tell the build where Audiere is installed. The default search path is
770    /usr/local.
771
772 *  --enable-audioworks --with-audioworks=<AUDIOWORKS_PATH>: Enable the use
773    of AudioWorks and tell the build where AudioWorks is installed. The
774    default search path is /usr.
775
776
777
778 Note
779
780  AudioWorks and OpenAL cannot be compiled together. They depend on mutually
781  exclusive VPR threading subsystems. Warnings will be printed by the Sonix
782  configure script indicating this fact. OpenAL and Audiere can be compiled
783  together, however.
784
785
786 Tweek
787
788  Tweek needs JDK 1.4 or newer and a C++ CORBA implementation. Currently, we
789  primarily use omniORB 4.0, but omniORB 3.0 can be used. Visit the omniORB
790  website to download omniORB.
791
792
793 Note
794
795  IRIX users must configure Tweek (and its VPR dependency) to use the POSIX
796  subsystem or the NSPR subsystem. omniORB will not work with SPROC threads.
797  To configure VPR to use either POSIX threads or NSPR threads, pass either -
798  -enable-subsystem=POSIX or --enable-subsystem=NSPR respectively to
799  configure.pl.
800
801  For the following steps, assume that you have omniORB installed in
802  <OMNIORB_PATH>. Assuming you have the external packages installed, do the
803  following from the top-level juggler directory:
804
805
806   mkdir build
807   cd build
808   ../configure.pl --with-cxx-orb=omniORB4 --with-cxx-orb-root=<OMNIORB_PATH>
809   --with-java-orb=JDK --module=Tweek
810   gmake build install
811
812  If you are using omniORB 3.x, pass --with-cxx-orb=omniORB3 instead.
813
814  Depending on your omniORB installation, you may have to pass extra
815  arguments to configure.pl so that the configuration process can find the
816  omniidl binary and the omniORB libraries. For example, on Red Hat Linux 7.2
817  with omniORB 3.0.x, the following arguments must be specified in addition
818  to the above:
819
820
821   --with-cxx-orb-bin=<OMNIORB_PATH>/bin/i586_linux_2.0_glibc --with-cxx-orb-
822   lib=<OMNIORB_PATH>/lib/i586_linux_2.0_glibc
823
Note: See TracBrowser for help on using the browser.