root/juggler/branches/2.2/INSTALL.txt

Revision 19793, 28.7 kB (checked in by patrick, 1 year ago)

Drop support for Visual C++ 7.0. The minimum required compiler version on
Windows is now Visual C++ 7.1 (from .NET 2003).

Approved by: General silence on vrjuggler-devel

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