root/juggler/trunk/INSTALL.txt

Revision 20929, 27.9 kB (checked in by patrick, 8 months ago)

Without SPROC support, there is no way to use AudioWorks?. Beyond that,
AudioWorks? seems to have disappeared long ago.

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