Commit ea7654db authored by hrchilds's avatar hrchilds
Browse files

Initial repo entry

git-svn-id: http://visit.ilight.com/svn/visit/trunk/src@3 18c085ea-50e0-402c-830e-de6fd14e8384
parents
Build instructions for VisIt
==============================
VisIt relies on several external libraries which must be built and installed
prior to building VisIt. This document provides detailed step by step
instructions for building VisIt and each of the dependent libraries. The
instructions have been designed so that you can cut and paste most of the
commands needed to build the libraries and VisIt from this file into your
shell prompt.
Library Version Description For More information
======= ======= =========== ====================
Mesa 5.0 3-D Graphics Library http://www.mesa3d.org/
Python 2.1.2 Scripting Language http://www.python.org
Qt 2.3.0 GUI Toolkit http://www.trolltech.com
Silo 4.3.1 File I/O library http://www.llnl.gov/bdiv/meshtv
VTK 021216 Visualization Toolkit http://www.kitware.com
The public version of VisIt has been built with the above listed versions
of the libraries, so it is known to work properly with those versions. For
all the packages except VTK and Qt, you can probably use newer versions of the
packages and VisIt should work properly. For Mesa, you must build a mangled
version of Mesa. The distribution provided has already been set up to build
a mangled version so no additional work is required if you use it. For VTK,
you must use the December 16 distribution provided. The version of Qt used to
build VisIt must be greater than or equal to 2.3.0. VisIt is also compatible
with Qt version 3.
Building VisIt
===============
VisIt can currently be built on aix, irix, linux, solaris, tru64 and
windows operating systems. The following instructions only apply to
building VisIt on Unix systems and does not apply to Windows.
We currently build VisIt using the following compilers on the following
operating systems. It is suggested that you use the same compilers.
Operating System Compiler
================ ========
AIX 5.1 g++ 3.1
IRIX64 6.5 MIPSpro 7.3.1.1m and MIPSpro 7.3.1.2m
Redhat Linux 7.1 and 7.2 g++ 2.96
Solaris 7 g++ 2.95.2
Tru64 5.1 g++ 3.0.4
It is essential that you build all the dependent packages and visit using
the same c++ compiler or you will encounter linking problems because different
compilers or different versions of the same compiler may use different name
mangling schemes.
If you are using gmake or are building on an SGI and your machine has
multiple CPUs, you may speed up the build process for many of the products
by doing a parallel make. For gmake, the command would be
make -j "# of processors"
and for an SGI the command would be
env PARALLEL="# of processors" make -P
Lets go ahead and build VisIt. Start off by creating a directory to hold
visit and the installed versions of each of the dependent libraries.
mkdir visit
echo `pwd`/visit > visitpath
Now build each of the dependent libraries followed by VisIt.
Mesa
=====
Mesa is a 3-D graphics library with an API which is very similar to that of
OpenGL. It is used for performing off-screen rendering.
#
# Build Mesa
#
gunzip Mesa-5.0-mangled.tar.gz
tar xf Mesa-5.0-mangled.tar
cd Mesa-5.0
#
# To build Mesa, one of the following targets should probably be used. The
# complete list of targets is available by typing "make" in the Mesa-5.0
# directory.
#
# make aix for IBM RS/6000
# make irix6-n32-dso for SGI systems with IRIX 6.x, make n32-bit DSOs
# make irix6-64-dso for SGI systems with IRIX 6.x, make 64-bit DSOs
# make linux for Linux systems, make shared .so libs
# make linux-alpha for Linux on Alpha systems
# make osf1-sl for DEC Alpha systems with OSF/1, make shared libs
# make solaris-x86 for PCs with Solaris
# make solaris-x86-gcc for PCs with Solaris using GCC
# make sunos5-sl for Suns with SunOS 5.x, make shared libs
# make sunos5-gcc-sl for Suns with SunOS 5.x, GCC, make shared libs
#
# Install it in the visit directory under the mesa directory.
#
mkdir ../visit/mesa
mkdir ../visit/mesa/{include,lib}
mkdir ../visit/mesa/include/GL
cp include/GL/*.h ../visit/mesa/include/GL
#
# On AIX systems you will need to build shared libraries from the
# archives.
#
# cd lib
# ar -x libMesaGL.a
# g++ -Wl,-G -shared -o libMesaGL.so -Wl,-bmaxdata:0x70000000 -Wl,-brtl *.o
# rm *.o
# ar -x libOSMesa.a
# g++ -Wl,-G -shared -o libOSMesa.so -Wl,-bmaxdata:0x70000000 -Wl,-brtl *.o
# rm *.o
# cd ..
#
cp lib/*.so ../visit/mesa/lib
cd ..
VTK
====
VTK is an object oriented library for visualizing 3D data. VisIt uses it
for all its visualization functionality. Follow the directions listed below
to build VTK. If you have any problems building or installing VTK, read the
VTK/README.html file included in the VTK distribution for more information.
#
# Build cmake which is used by VTK to configure its distribution
#
gunzip CMake1.4.7-src-unix.tar.gz
tar xf CMake1.4.7-src-unix.tar
cd CMake-1.4.7
env CXXFLAGS="" ./configure
#
# Build VTK
#
cd ..
gunzip vtk_cvs_16Dec02.tar.gz
tar xf vtk_cvs_16Dec02.tar
cd VTK
../CMake-1.4.7/Source/cmake
#
# Edit CMakeCache.txt. Turn BUILD_SHARED_LIBS, VTK_USE_HYBRID, and
# VTK_USE_MANGLED_MESA on, Turn BUILD_TESTING off.
#
# If you want to change the compilers you should modify CMAKE_CXX_COMPILER
# and CMAKE_C_COMPILER. If you want to change the compiler flags you should
# modify CMAKE_CXX_FLAGS and CMAKE_C_FLAGS. You might want to specify "-O2"
# as a compiler flag to build an optimized version. If you want to specify
# the location of the OpenGL library you should modify OPENGL_LIBRARY
# (/usr/shlib/libGL.so on tru64 systems.)
#
../CMake-1.4.7/Source/cmake
#
# Edit CMakeCache.txt, setting MANGLED_MESA_INCLUDE_DIR, MANGLED_MESA_LIBRARY,
# MANGLED_OSMESA_LIBRARY, to point to the appropriate files and directories
# in the mesa directory.
# For example:
#
# MANGLED_MESA_INCLUDE_DIR:PATH=/home/visit/mesa/include
# MANGLED_MESA_LIBRARY:FILEPATH=/home/visit/mesa/lib/libMesaGL.so
# MANGLED_OSMESA_LIBRARY:FILEPATH=/home/visit/mesa/lib/libOSMesa.so
#
# Note that you need to be very careful in setting the above variables so
# that you provide the appropriate filename or path.
#
../CMake-1.4.7/Source/cmake
#
# On tru64 systems using g++ 3.0.4, several files in the Imaging directory
# will not compile because of an internal compiler error. You will need to
# comment out the code in the method ThreadedExecute (with "#if 0" as the
# first line in the method and "#endif" as the last line in the method.)
# The files are:
# Imaging/vtkImageContinuousDilate3D.cxx
# Imaging/vtkImageContinuousErode3D.cxx
# Imaging/vtkImageConvolve.cxx
# Imaging/vtkImageRange3D.cxx
# Imaging/vtkImageVariance3D.cxx
#
make
#
# Install it in the visit directory under the vtk directory.
#
mkdir ../visit/vtk
mkdir ../visit/vtk/{Common,Filtering,Graphics,Hybrid,IO,Imaging,Rendering,MangleMesaInclude,lib}
cp vtkConfigure.h ../visit/vtk
cp vtkToolkits.h ../visit/vtk
cp vtk*Instantiator.h ../visit/vtk
cp Common/*.h ../visit/vtk/Common
cp Filtering/*.h ../visit/vtk/Filtering
cp Graphics/*.h ../visit/vtk/Graphics
cp Hybrid/*.h ../visit/vtk/Hybrid
cp IO/*.h ../visit/vtk/IO
cp Imaging/*.h ../visit/vtk/Imaging
cp Rendering/*.h ../visit/vtk/Rendering
cp MangleMesaInclude/*.h ../visit/vtk/MangleMesaInclude
cp bin/*.so ../visit/vtk/lib
cd ..
#
# Several of the header files in MangleMesaInclude have absolute paths
# of other headers files that are located in the directories you built
# VTK in. This means that even though the header files were copied to
# the visit/vtk directory, there are still references to header files
# in directories where you built VTK. This may cause problems if you
# later remove the directories where you built VTK, or if someone else
# were to use your installation and the permissions in your directories
# were incorrect.
#
Qt
===
The Qt toolkit from Trolltech is a free (for non-commercial use), cross-
platform Graphical User Inteface toolkit that runs on X11, MS Windows, and
Mac-X. VisIt uses Qt as the basis of its GUI and Viewer. Follow the
directions listed below to build Qt. You can use Qt version 2.3.0 or 3.0.2
on all the systems except tru64 where you must use 3.0.2. Version 2.3.0
generally looks nicer than version 3.0.2, so we recommend it where possible.
If you have any problems building or installing Qt, read the INSTALL file
in the Qt distribution for more information.
#
# Build Qt 2.3.0
#
gunzip qt-x11-2.3.0.tar.gz
tar xf qt-x11-2.3.0.tar
cd qt-2.3.0
setenv QTDIR `pwd`
# Use the appropriate configure command based on the operating system on
# which you are building Qt.
./configure -platform aix-g++ -shared -qt-libpng
./configure -platform irix-64 -shared -qt-libpng
./configure -platform linux-g++ -shared -qt-libpng
./configure -platform solaris-g++ -shared -qt-libpng
./configure -platform tru64-g++ -shared -qt-libpng
#
# On aix systems you will need to make the following changes to
# the file mkspecs/aix-g++/qmake.conf:
# remove "/usr/X11R6/include" from QMAKE_INCDIR_X11
# remove "/usr/X11R6/include" from QMAKE_INCDIR_OPENGL
#
make
#
# Install it in the visit directory under the qt directory.
#
mkdir ../visit/qt
mkdir ../visit/qt/bin
mkdir ../visit/qt/include
mkdir ../visit/qt/lib
cp bin/{designer,findtr,moc,qt20fix,qtrename140} ../visit/qt/bin
cd include; cp *.h ../../visit/qt/include
cd ../lib;find . -print | cpio -pvmud ../../visit/qt/lib
cd ../..
#
# On AIX systems you will need to add an additional link to the lib
# directory so that the loader can find the library.
#
# ln -s libqt.so.2.3.0 visit/qt/lib/libqt.so
#
#
# Build Qt 3.0.2
#
gunzip qt-x11-free-3.0.2.tar.gz
tar xf qt-x11-free-3.0.2.tar
cd qt-x11-free-3.0.2
setenv QTDIR `pwd`
# Use the appropriate configure command based on the operating system on
# which you are building Qt.
./configure -platform aix-g++ -shared -qt-libpng
./configure -platform irix-64 -shared -qt-libpng
./configure -platform linux-g++ -shared -qt-libpng
./configure -platform solaris-g++ -shared -qt-libpng
./configure -platform tru64-g++ -shared -qt-libpng
#
# On tru64 systems you will need to make the following changes to
# the file mkspecs/tru64-g++/qmake.conf:
# remove "/usr/X11R6/include" from QMAKE_INCDIR_X11
# remove "/usr/X11R6/lib" from QMAKE_LIBDIR_X11
# remove "/usr/X11R6/include" from QMAKE_INCDIR_OPENGL
# set QMAKE_LIBDIR_OPENGL to "/usr/shlib"
#
# On aix systems you will need to make the following changes to
# the file mkspecs/aix-g++/qmake.conf:
# remove "/usr/X11R6/include" from QMAKE_INCDIR_X11
# remove "/usr/X11R6/include" from QMAKE_INCDIR_OPENGL
#
make
#
# Install it in the visit directory under the qt directory.
#
mkdir ../visit/qt
mkdir ../visit/qt/bin
mkdir ../visit/qt/include
mkdir ../visit/qt/include/private
mkdir ../visit/qt/lib
cp bin/{designer,findtr,moc,qt20fix,qtrename140} ../visit/qt/bin
cd include; cp *.h ../../visit/qt/include
cp private/*.h ../../visit/qt/include/private
cd ../lib;find . -print | cpio -pvmud ../../visit/qt/lib
cd ../..
#
# On AIX systems you will need to add an additional link to the lib
# directory so that the loader can find the library.
#
# ln -s libqt.so.2.3.0 visit/qt/lib/libqt.so
#
Silo
=====
Silo is a self-describing, machine-independent scientific file format.
Silo is one of the file formats supported by VisIt. Follow the directions
listed below to build Silo. If you have any problems building or installing
Silo, read the INSTALL_NOTES file in the SILO distribution for more information.
#
# Build Silo
#
sh silo020325.sh
cd silo020325
env CFLAGS=-O2 ./configure --without-readline --without-hdf5 --without-exodus
make
#
# Install it in the visit directory under the silo directory.
#
mkdir ../visit/silo
mkdir ../visit/silo/include
mkdir ../visit/silo/lib
cp silo/silo/silo.h ../visit/silo/include
cp silo/silo/silo.inc ../visit/silo/include
cp silo/sdx/sdx.h ../visit/silo/include
cp silo/sdx/sdx.inc ../visit/silo/include
cp lib/libsilo.a ../visit/silo/lib
cd ..
Python
=======
Python is a powerful, free scripting language that is used to drive VisIt's
viewer when running VisIt without a GUI. Python is cross platform and runs on
many UNIXes as well as MS Windows and other platforms. VisIt can be configured
to run without Python if scripting features are not desired. Follow the
directions listed below to build Python. If you have any problems building
or installing Python, read the README file in the Python distribution for more
information.
#
# Build and install it in the visit directory under the python directory.
#
gunzip Python-2.1.2.tar.gz
tar xf Python-2.1.2.tar
cd Python-2.1.2
./configure --prefix=`cat ../visitpath`/python
make
make install
#
# You will also need to create a shared version of the python library.
#
mkdir tmpdir
cd tmpdir
ar -x ../libpython2.1.a
# Use the appropriate command based on the operating system on which
# you are creating the shared library.
g++ -Wl,-G -shared -o ../libpython2.1.so *.o # aix
g++ -shared -o ../libpython2.1.so *.o # irix
g++ -shared -o ../libpython2.1.so *.o # linux
g++ -Wl,-G -o ../libpython2.1.so *.o # solaris
g++ -Wl,-expect_unresolved -Wl,'*' -shared -o ../libpython2.1.so *.o # tru64
cd ..
rm -rf tmpdir
cp libpython2.1.so ../visit/python/lib/python2.1/config/libpython2.1.so
cd ..
VisIt
======
VisIt uses GNU's autoconf system to provide platform independence when
building VisIt in a UNIX environment. Autoconf creates a script called
configure that tests your system for various libraries and programs required
to build VisIt. Follow the directions listed below to build VisIt.
More information about building VisIt follows after that.
#
# Build and install it in the visit directory.
#
gunzip visit030508.tar.gz
tar xf visit030508.tar
cd visit030508/config-site
echo VISITHOME=`cat ../../visitpath` > `hostname`.conf
cat Template.conf >> `hostname`.conf
cd ..
env CXXFLAGS=-O2 ./configure
make
clearcase_bin/visit-bin-dist -v 1.1.4
# Use the appropriate install command based on the operating system on
# which you built VisIt.
clearcase_bin/visit-install 1.1.4 aix `cat ../visitpath`
clearcase_bin/visit-install 1.1.4 irix6 `cat ../visitpath`
clearcase_bin/visit-install 1.1.4 linux `cat ../visitpath`
clearcase_bin/visit-install 1.1.4 osf1 `cat ../visitpath`
clearcase_bin/visit-install 1.1.4 sunos5 `cat ../visitpath`
When running the configure script you can enable or disable certain dependent
packages. All the configure options are listed at the beginning of the
configure script or can listed by the configure script by typing
"./configure -help". The most commonly used options are:
--enable-parallel make the parallel version
--disable-scripting build without Python scripting capability
--enable-java build the Java interface library
--enable-buildall build all plugins
--with-hdf5=INC,LIB Location of HDF5 header and library
--with-vbt=INC,LIB Location of VBT/DSL headers and libraries
--with-saf=INC,LIB Location of SAF headers and libraries
--with-exodus[=<DIR>] enable Exodus driver
--with-exodus-include[=<DIR>] specify Exodus include path
--with-exodus-lib[=<DIR>] specify Exodus lib path
The enable parallel option builds the parallel version of VisIt. Parallel
versions are supported on SGI and IBM AIX systems. The disable scripting
option builds VisIt without the Python scripting. The enable buildall
option builds all the VisIt plugins. By default, only the most common
plugins are built.
The second group of options are used when building with support for reading
SAF files. The third group of options are used when building with support
for reading exodus files.
If you have any problems send e-mail to visit-help@llnl.gov.
Copyright 2000 - 2002.
The Regents of the University of California.
All rights reserved.
This work was produced at the University of California, Lawrence Livermore
National Laboratory (UC LLNL) under contract no. W-7405-ENG-48 (Contract 48)
between the U.S. Department of Energy (DOE) and The Regents of the University
of California (University) for the operation of UC LLNL. Copyright is reserved
to the University for purposes of controlled dissemination, commercialization
through formal licensing, or other disposition under terms of Contract 48; DOE
policies, regulations and orders; and U.S. statutes. The rights of the Federal
Government are reserved under Contract 48 subject to the restrictions agreed
upon by the DOE and University as allowed under DOE Acquisition Letter 97-1.
DISCLAIMER
This work was prepared as an account of work sponsored by an agency of the
United States Government. Neither the United States Government nor the
University of California nor any of their employees, makes any warranty,
express or implied, or assumes any liability or responsibility for the
accuracy, completeness, or usefulness of any information, apparatus, product,
or process disclosed, or represents that its use would not infringe privately-
owned rights. Reference herein to any specific commercial products, process,
or service by trade name, trademark, manufacturer or otherwise does not
necessarily constitute or imply its endorsement, recommendation, or favoring
by the United States Government or the University of California. The views and
opinions of authors expressed herein do not necessarily state or reflect those
of the United States Government or the University of California, and shall not
be used for advertising or product endorsement purposes.
LICENSING REQUIREMENTS
Permission is hereby granted to use and copy this software and documentation
for internal noncommercial purposes only, provided that 1) the above copyright
notice and disclaimer appear in all copies of the software and documentation,
and 2) all UC LLNL identification in the user interface remains unchanged. Any
use, reproduction, modification, or distribution of this software or
documentation for commercial purposes requires a license from the University.
Contact: Lawrence Livermore National Laboratory, Industrial Partnerships and
Commercialization Office, P.O. Box 808, L-795, Livermore, CA 94551.
Installation instructions for VisIt
=====================================
This document contains instructions for installing VisIt on both Unix and
Windows systems. The Unix installation instructions are first followed
by the Windows installation instructions.
Unix:
1. Run the visit-install script to install visit. Note that it can
create a new distribution directory or update an existing
distribution. This is handled automatically.
visit-install "version" "platform" "directory"
where
"version" will be 1.1.4 for the current distribution.
"platform" will be one of the following: aix, irix6, linux, osf1,
or sunos5 depending on the machine. The one you use should match
the name of the accompanying distribution file.
"directory" is the directory you wish to install visit into.
If the directory doesn't exist the script will create it.
For example
visit-install 1.1.4 irix6 /usr/local/visit
will install the irix6, 1.1.4 version of visit in the directory
"/usr/local/visit". Note that you will need to have the file
"visit1_1_4.irix6.tar.gz" present in the current directory for this
to function properly. You can install multiple binaries into the
same directory. For example, you could then execute
visit-install -a 1.1.4 linux /usr/local/visit
to add a linux, 1.1.4 version of visit to the same directory.
2. Add the bin directory below the installation directory
(/usr/local/visit/bin in our example) to each user's search path.
The best way to do this is to add it to the user's .cshrc file.
The bin directory contains the visit script which starts VisIt.
It can be run on many machines. The script determines the type of
machine it is running on and starts the appropriate executable.
If visit were installed in the directory "/usr/local/visit",
then the following commands would set your search path
appropriately.
cd
echo "set path = ($path /usr/local/visit/bin)" >> .cshrc
This completes the installation process for VisIt.
3. If you are installing VisIt on a Linux system with an NVidia graphics
card, we recommend using the NVidia 2960 driver unless you will be
doing stereo rendering. If you will be doing stereo rendering then you
must use the 3123 driver, although it has some bugs. Below are notes
on the various NVidia Linux drivers.
2802 - Not recommended. It has a triangle shading bug.
2960 - Recommended. Doesn't support stereo rendering.
3123 - Recommended for stereo rendering. It may not render large
numbers of polygons when using display lists. You can turn
off display lists by bringing up the "Rendering options"
window and deselecting the "Use display lists" toggle button.
4191 - Not recommended. VisIt either crashes your X server or puts
up a visualization window that never gets refreshed.
Windows:
1. Copy the file visit1.1.4.exe to your desktop.
2. Right click on the visit1.1.4.exe icon using your mouse and selecting
"Extract to folder C:\...\Desktop\visit1.1.4" from the popup menu. A
window will popup as the file is extracted into the directory. Once
the process is complete a "visit1.1.4" directory icon should appear on
your desktop.
3. Double click on the "visit1.1.4" directory icon bringing up a file
system browsing window.
4. Double click on the SETUP icon with the computer display icon to run
InstallShield.
5. Follow the directions provided by InstallShield.
# Copyright 2000 - 2003
# The Regents of the University of California.
# All rights reserved.
#
# This work was produced at the University of California, Lawrence Livermore
# National Laboratory (UC LLNL) under contract no. W-7405-ENG-48 (Contract
# 48) between the U.S. Department of Energy (DOE) and The Regents of the
# University of California (University) for the operation of UC LLNL.
# Copyright is reserved to the University for purposes of controlled
# dissemination, commercialization through formal licensing, or other
# disposition under terms of Contract 48; DOE policies, regulations and
# orders; and U.S. statutes. The rights of the Federal Government are
# reserved under Contract 48 subject to the restrictions agreed upon by DOE
# and University.
#
# DISCLAIMER
#
# This software was prepared as an account of work sponsored by an agency of
# the United States Government. Neither the United States Government nor the
# University of California nor any of their employees, makes any warranty,
# express or implied, or assumes any liability or responsiblity for the
# accuracy, completeness, or usefullness of any information, apparatus,
# product, or process disclosed, or represents that its use would not infringe
# privately owned rights. Reference herein to any specific commercial
# products, process, or service by trade name, trademark, manufacturer, or
# otherwise, does not necessarily constitute or imply its endorsement,
# recommendation, or favoring by the United States Government or the
# University of California. The views and opinions of authors expressed herein
# do not necessarily state or reflect those of the United States Government or
# the University of California, and shall not be used for advertising or
# product endorsement purposes.
#
# Modifications:
# Eric Brugger, Fri Aug 4 14:31:06 PDT 2000
# I changed the order the that subdirectories are listed in SUBDIRS.
#
# Brad Whitlock, Thu Sep 7 16:52:17 PST 2000
# I made the engine build before the viewer.
#
# Kathleen Bonnell, Thu Oct 12 11:07:22 PDT 2000
# Add visit_vtk to list of subdirectories.
#
# Kathleen Bonnell, Tue Oct 17 14:55:20 PDT 2000
# Moved visit_vtk before engine in list of subdirs.
#
# Brad Whitlock, Tue Oct 31 15:36:54 PST 2000
# Added vtkqt.
#
# Hank Childs, Fri Jan 5 13:02:23 PST 2001
# Removed directory tools from list of subdirectories to build.
#
# Eric Brugger, Fri Feb 16 13:08:59 PST 2001
# I moved the line continuation character for the SUBDIRS variable so
# that we don't have the situation where we have a line continuation
# with no contuation line.
#
# Eric Brugger, Mon Feb 26 15:44:11 PST 2001
# I modified the makefile to compile the files in the plot directory tree.
#
# Jeremy Meredith, Fri May 11 14:39:48 PDT 2001
# Added lib directory.
# Added "source" target to plots directory.
#
# Jeremy Meredith, Thu Jul 26 02:44:25 PDT 2001
# Added operator plugins.
# Removed the "make source" needed to resolve old circular dependencies.
#
# Jeremy Meredith, Fri Jul 27 13:48:59 PDT 2001
# Added "parclean" make target.
#