Build visit overview

VisIt can now be built automatically using the build_visit script on many Linux, MacOS X, and AIX platforms (more to come). The build_visit script takes care of downloading relevant VisIt and 3rd party source code, configuring, and building it all using your C++ compiler. We encourage users to build VisIt using the build_visit script when our binary distributions have trouble running on some systems. We also recommend using the build_visit script on your system if you plan to:

  • Modify the VisIt source code.
  • Run a parallel compute engine. Building a parallel version of VisIt on your system allows you to configure VisIt so it uses your MPI library, avoiding incompatibilities.
  • Create your own VisIt plugins. Building VisIt on your system ensures that it is built with the same C++ compiler that you will use to develop your plugin, minimizing the chance for runtime library incompatibilities.
  • Use Libsim for in situ computations

Background

The VisIt build process is quite complex, there are several very large external libraries with are required before the VisIt build can even be attempted. In addition there are over a dozen optional external libraries needed to support additional database readers. Each of these libraries introduces its own unique build procedure. The build_visit script attempts to mediate these differences for the user and build the user desired combination of VisIt features entirely under-the-covers. In addition, build_visit will apply library patches when necessary to ensure that the libraries function correctly. The specific versions of the the external libraries used have been conveniently copied into the VisIt svn site http://visit.ilight.com/svn/visit/trunk/third_party. The default versions of the external libraries have been tested, and known to work with VisIt, however newer versions of the libraries should work equally well.

The build process

The build_visit script will download the required and optional tarballs from the VisIt web site. Assuming that build_visit exists in the current working directory, all the library tarballs will be downloaded to the current working directory. The user can either manually copy (download) the external libraries into current working directory, or let build_visit automatically download them from the VisIt web site. During the build_visit process, an intermediate install directory is created in the current working directory called visit. Each of the external packages get compiled and installed into a directory prefix of visit/PACKAGE/VERSION/ARCH/, where PACKAGE is one of the possible values (in lower case) from the Library column in the above tables. VERSION is replaced by the Version value from the table, and ARCH is information specific to the system architecture which did the compile. The build of VisIt begins after all of the external libraries have successfully built. The first step in that process will be the creation of a host.cmake file, which contains the location of the libraries that were built above. This host.cmake file significantly reduces the number of arguments needed by VisIt's CMake build. It can also save time in subsequent VisIt builds, obviating the need to build the external 3rd-party libraries altogether.

Command-line interface

Build_visit determines build options by parsing a list of parameters following the build_visit command. This parameter list contains options, and option-arguments. The arguments that consist of hyphens and single letters or digits, such as --hdf5, are known as options (or, historically, flags). Certain options are followed by an option-argument, as shown with --cflags "-g". Options and option-arguments are specified as follows:

  • All options are preceded by the "--" delimiter characters.
  • Each option and option-argument combination is a separate argument (e.g., separated by white-space).
  • Option-arguments are not optional.
  • The order of different options relative to one another does not matter.
  • Options are interpreted in the order that they are specified. If an option that has option-arguments is repeated, the option and option-argument combinations will be interpreted in the order specified on the command line (e.g., the last repeated option-argument wins).

Command-line interface Help

The list of available options can be displayed by entering: ./build_visit --help

Usage: ./build_visit [options]
A download attempt will be made for all files which do not exist.

BOOLEAN FLAGS
	These are used to enable or disable specific functionality.  They do not take option values.

--dry-run       Dry run of the presented options [false]
--build-mode    VisIt build mode (Debug or Release) [Release]
--console       Do not use dialog ('graphical') interface [no]
--dbio-only     Disables EVERYTHING but I/O. [no]
--engine-only   Only build the compute engine. [no]
--debug         Enable debugging for this script [false]
--download-only Only download the specified packages [false]
--flags-debug   Add '-g' to C[XX]FLAGS [false]
--group         Group name of installed libraries [visit]
-h              Display this help message. [false]
--help          Display this help message. [false]
--install-network Install specific network config files. []
--java          Build with the Java client library [no]
--no-hostconf   Do not create host.conf file. [on]
--parallel      Enable parallel build, display MPI prompt [no]
--prefix        The directory to which VisIt should be installed once it is built []
--print-vars    Display user settable environment variables [false]
--server-components-only Only build VisIt's server components (mdserver,vcl,engine). [no]
--slivr         Build with SLIVR shader support [no]
--paradis       Build with the paraDIS client library [no]
--static        Build using static linking [no]
--stdout        Write build log to stdout [build_visit_log]
--xdb           Enable FieldView XDB plugin. [no]
--required      All required libraries [yes]
--optional      All optional libraries [no]
--no-thirdparty Do not build required 3rd party libraries [no]
--all-io        Build all available I/O libraries [no]
--dbio-only     Disables EVERYTHING but I/O. [no]
--nonio         Build non I/O libraries [no]
--advanced      Must be manually downloaded [no]
--visit         Build VisIt [yes]
--cmake         Build CMake [built by default unless --no-thirdparty flag is used]
--system-cmake  Use the system installed CMake []
--alt-cmake-dir Use CMake from an alternative directory []
--bin-cmake-dir Use CMake from an alternative binary directory []
--mesa          Build Mesa [no]
--python        Build Python [built by default unless --no-thirdparty flag is used]
--system-python Use the system installed Python []
--alt-python-dir Use Python from an alternative directory []
--mpi4py        Build mpi4py with Python []
--qt            Build Qt4 [built by default unless --no-thirdparty flag is used]
--qt5           Build Qt5 instead of Qt4 [no]
--system-qt     Use the system installed Qt []
--alt-qt-dir    Use Qt from alternative directory []
--qwt           Build with Qwt [yes]
--alt-qwt-dir   Use Qwt from an alternative directory []
--vtk           Build VTK [built by default unless --no-thirdparty flag is used]
--system-vtk    Use the system installed VTK []
--alt-vtk-dir   Use VTK from an alternative directory []
--adios         Build ADIOS [no]
--alt-adios-dir Use ADIOS from an alternative directory []
--advio         Build AdvIO [no]
--boost         Build BOOST [no]
--alt-boost-dir Use Boost from an alternative directory []
--boxlib        Build Boxlib [no]
--ccmio         Build Star-CD support [no]
--cfitsio       Build CFITSIO [no]
--cgns          Build CGNS [no]
--conduit       Build Conduit [no]
--eavl          Build eavl support [no]
--alt-eavl-dir  Use eavl from an alternative directory []
		NOTE: FastBit not available for download from web
--fastbit       Build FastBit [no]
		NOTE: FastQuery not available for download from web
--fastquery     Build FastQuery [no]
--gdal          Build GDAL [no]
--h5part        Build H5Part [no]
--hdf4          Build HDF4 [no]
--hdf5          Build HDF5 [no]
--alt-hdf5-dir  Use HDF5 from an alternative directory []
--icet          Build Ice-T (parallel rendering lib) [no]
--no-icet       Ice-T is automatically built with --enable-parallel.  Prevent it from being built [no]
--llvm          Build LLVM [no]
--manta         Build Manta [no]
--mfem          Build mfem support [no]
--mili          Build Mili [no]
--moab          Build moab support [no]
--mpich         Build MPICH support [no]
--mxml          Build Mxml [no]
--nektarpp      Build Nektar++ [no]
--alt-nektarpp-dir Use Nektar++ from an alternative directory []
--netcdf        Build NetCDF [no]
--alt-netcdf-dir Use NetCDF from an alternative directory []
--openssl       Build openssl support [no]
--openswr       Build OpenSWR [no]
--pidx          Build pidx [no]
--alt-pidx-dir  Use pidx from an alternative directory []
--pyside        Build PySide [yes]
--alt-pyside-dir Use PySide from an alternative directory []
--silo          Build Silo support [no]
--silex         Enable silex when building Silo [no]
--szip          Build with SZIP [no]
--tcmalloc      Build tcmalloc from Google's perftools [no]
--uintah        Build Uintah [no]
--alt-uintah-dir Use Uintah from an alternative directory []
--visus         Build ViSUS support [no]
--alt-visus-dir Use ViSUS from an alternative directory []
--vtkm          Build VTKm support [no]
--alt-vtkm-dir  Use VTKm from an alternative directory []
--xdmf          Build Xdmf [no]
--zlib          Build ZLIB support [no]

OPTIONS
These values all take a special value.  If given, they require an associated value to be provided as well.

--installation-build-dir 
	Specify the directory visit will use for building [output-filename]
--write-unified-file 
	Write single unified build_visit file [output-filename]
--arch <architecture> Set architecture [i386-apple-darwin16_clang]
	     This variable is used in constructing the 3rd party
	     library path; usually set to something like
	     'linux_gcc-3.4.6' or 'Darwin_gcc-4.0.1'
--cflag     Append a flag to CFLAGS [-fno-common -fexceptions]
--cxxflag   Append a flag to CXXFLAGS [-fno-common -fexceptions]
--cflags    Explicitly set CFLAGS [-fno-common -fexceptions]
--cxxflags  Explicitly set CXXFLAGS [-fno-common -fexceptions]
--cc        Explicitly set C_COMPILER [clang]
--cxx       Explicitly set CXX_COMPILER [clang++]
--makeflags <flags> Flags to 'make' []
--svn <Obtain VisIt source code and third party libraries from the SVN server> 
	    [svn co svn+ssh://whitlocb@edison.nersc.gov/project/projectdirs/visit/svn/visit/trunk/src]
--svn-anonymous <Obtain VisIt source code and third party libraries using the anonymous SVN mirror.> 
	    [svn co http://visit.ilight.com/svn/visit/trunk/src]
--svn-revision <revision> Specify the SVN revision of the VisIt source code and third party libraries to download.  Used in conjunction with --svn or --svn-anonymous.
--tarball <file> tarball to extract VisIt from [visit2.13.0.tar.gz]
--thirdparty-path </path/to/directory> 
             Specify the root directory name under which the 3rd party
             libraries have been installed.  If defined, it would typically
             mean the 3rd party libraries are pre-built and are installed
             somewhere like /usr/gapps/visit. [./visit]
--version <version> The VisIt version to build [2.13.0]

Command-line interface Examples

The standard VisIt build will download from web required 3rd party libraries, VisIt tar-ball, and then build.

./build_visit

Specifying compilers

The build_visit script builds many 3rd party libraries in addition to building VisIt. Compilation errors and later runtime errors are less likely if the same compiler is used to build all 3rd party libraries as well as VisIt. The build_visit script will use your default C and C++ compilers for the build. On many systems, the default compiler is gcc. If you want to override the compiler that build_visit will use (e.g. use the Intel compilers), you can do so by passing additional command line arguments to build_visit.

Arguments Description Example
--cc /path/to/bin/compiler Set the C compiler that build_visit will use. Forcing the Intel C compiler: --cc icc
--cflags options Specify additional options for the C compiler. --cflags "-DFOO -fPIC"
--cxx /path/to/bin/compiler Set the C++ compiler that build_visit will use. Forcing the Intel C++ compiler: --cxx icpc
--cxxflags options Specify additional options for the C++ compiler. --cxxflags "-DFOO -fPIC"

Adding I/O Libraries

To add the optional 3rd party libraries (e.g. HDF4, HDF5, Boxlib, CCMIO, CGNS, Exodus, CFITSIO, GDAL, NetCDF, H5Part) you can add their corresponding command line arguments. This will enable VisIt to read additional file formats.

./build_visit --hdf4 --hdf5 --szip --boxlib --ccmio --cgns --exodus \
  --cfitsio --gdal --netcdf --h5part

To build and install only the above libraries into the system accessible directory /usr/gapps/visit, with group owner of visit, add the --no-visit command line argument. A host.cmake will be generated to guide VisIt's CMake build.

./build_visit --no-visit --hdf4 --hdf5 --szip --boxlib --ccmio --cgns --exodus \
  --cfitsio --gdal --netcdf --h5part \
  --no-visit --thirdparty-path /usr/gapps/visit --group visit

When using the host.cmake file in subsequent VisIt builds, the 3rd party libraries will not need to be rebuilt unless their version has changed. To get this feature, you will need to copy the host.cmake file into VisIt's sources src/config-site and invoke CMake manually.

Faster builds

When you run build_visit, there is a handful of core libraries that must be built before VisIt is built. Many of the additional 3rd party libraries are optional and they are used only for building database reader plugins. If you do not wish to build those plugins then many of the 3rd party libraries can be omitted from the build, making build_visit complete faster.

./build_visit --no-thirdparty --cmake --vtk --qt --qwt --python --pyside --silo --hdf5 --szip

You can also pass the --makeflags option to use parallel make so your build will complete faster if you are building on a multiprocessor computer. Example:

./build_visit --makeflags -j4

How to build a parallel version with MPI

Many Linux desktop systems lack a functioning MPI distribution. In this case, you may add --mpich to the build_visit command line so it will build MPICH's MPI and install it with VisIt. This method will ensure that MPI's mpirun / mpiexec programs will be put into the VisIt installation so you can later run visit -np 4 to run VisIt in parallel.

On other systems where MPI may be installed, there are various options for informing the VisIt build how to locate MPI. For instance, if your system has a working mpicc MPI wrapper compiler, you may invoke build_visit like this:

env PAR_COMPILER=mpicc ./build_visit

For other MPI's you can do this:

env PAR_INCLUDE=/path/to/mpi/include PAR_LIBS=/path/to/mpi/lib/libmpi.a ./build_visit

Building server only

Much of the time, the pre-built VisIt executables will suffice for desktop systems but you need a special version of VisIt to run on a remote server and process data there. In this case, you can run client/server from the desktop to the remote server. This means that for the remote server build of VisIt, you need only build the server programs that will read and process the data since the GUI will run locally. You can speed up the VisIt build considerably by adding the --server-components-only flag to build only the VisIt server and related programs.

env PAR_COMPILER=mpicc ./build_visit --server-components-only --mesa --icet

Environment variables

There are a variety of environment variables that can be set by the user to override the default behavior of build_visit. The use of environment variables is a rather advanced feature for the casual user, but flexible operations can be performed from the command line with no code changes. A useful operation has been the overriding of the default 3rd party libraries with more recent versions. The process has been tried on a limited range of updates with varying degrees of success (usually depending to the compatibility of the new library release, and if the new code requires custom patches).

Environment variables display

Use ./build_visit --print-vars to display the user settable environment variables and their default values.

Setting VisIt info...
The following is a list of user settable environment variables

OPSYS=Darwin
PROC=i386
REL=16.6.0
ARCH=i386-apple-darwin16
VISITARCH=i386-apple-darwin16_clang
C_COMPILER=clang
CXX_COMPILER=clang++
CFLAGS=-fno-common -fexceptions
CXXFLAGS=-fno-common -fexceptions
C_OPT_FLAGS=-O2
CXX_OPT_FLAGS=-O2
PAR_INCLUDE=
PAR_LIBS=
MAKE=make
THIRD_PARTY_PATH=./visit
GROUP=visit
LOG_FILE=build_visit_log
LOG_FILE=build_visit_log
WGET_OPTS=
SVNREVISION=HEAD
VISIT_FILE=visit2.13.0.tar.gz
VISIT_VERSION=2.13.0
CMAKE_FILE=cmake-3.8.1.tar.gz
CMAKE_VERSION=3.8.1
CMAKE_BUILD_DIR=cmake-3.8.1
MESA_FILE=MesaLib-7.10.2.tar.gz
MESA_VERSION=7.10.2
MESA_TARGET=darwin
MESA_BUILD_DIR=Mesa-7.10.2
PYTHON_FILE=Python-2.7.11.tgz
PYTHON_VERSION=2.7.11
PYTHON_COMPATIBILITY_VERSION=2.7
PYTHON_BUILD_DIR=Python-2.7.11
QT_FILE=qt-everywhere-opensource-src-4.8.3.tar.gz
QT_VERSION=4.8.3
QT_PLATFORM=macx-g++
QT_BUILD_DIR=qt-everywhere-opensource-src-4.8.3
QT_BIN_DIR=qt-everywhere-opensource-src-4.8.3/bin
QWT_FILE=qwt-6.1.2.tar.bz2
QWT_VERSION=6.1.2
QWT_COMPATIBILITY_VERSION=6.0
QWT_BUILD_DIR=qwt-6.1.2
VTK_FILE=VTK-6.1.0.tar.gz
VTK_VERSION=6.1.0
VTK_BUILD_DIR=VTK-6.1.0
ADIOS_FILE=adios-1.11.0.tar.gz
ADIOS_VERSION=1.11.0
ADIOS_COMPATIBILITY_VERSION=1.11.0
ADIOS_BUILD_DIR=adios-1.11.0
ADVIO_FILE=AdvIO-1.2.tar.gz
ADVIO_VERSION=1.2
ADVIO_COMPATIBILITY_VERSION=1.2
ADVIO_BUILD_DIR=AdvIO-1.2
BOOST_FILE=boost_1_60_0.tar.gz
BOOST_VERSION=1_60_0
BOOST_COMPATIBILITY_VERSION=1_60
BOOST_BUILD_DIR=boost_1_60_0
BOXLIB_FILE=ccse-1.3.5.tar.gz
BOXLIB_VERSION=1.3.5
BOXLIB_COMPATIBILITY_VERSION=1.3.5
BOXLIB_BUILD_DIR=ccse-1.3.5/Src/C_BaseLib
CCMIO_FILE=libccmio-2.6.1.tar.gz
CCMIO_VERSION=2.6.1
CCMIO_COMPATIBILITY_VERSION=2.0
CCMIO_BUILD_DIR=libccmio-2.6.1
CFITSIO_FILE=cfitsio3006.tar.gz
CFITSIO_VERSION=3006
CFITSIO_COMPATIBILITY_VERSION=3.0
CFITSIO_BUILD_DIR=cfitsio
CGNS_FILE=cgnslib_3.2.1.tar.gz
CGNS_VERSION=3.2.1
CGNS_COMPATIBILITY_VERSION=3.2
CGNS_BUILD_DIR=cgnslib_3.2.1/src
CONDUIT_FILE=conduit-0.2.1.tar.gz
CONDUIT_VERSION=0.2.1
CONDUIT_COMPATIBILITY_VERSION=0.2.1
CONDUIT_BUILD_DIR=conduit-0.2.1
EAVL_FILE=EAVL-4593630.tar.gz
EAVL_VERSION=4593630
EAVL_BUILD_DIR=EAVL-4593630
FASTBIT_FILE=fastbit-2.0.3.4.tar.gz
FASTBIT_VERSION=2.0.3.4
FASTBIT_BUILD_DIR=fastbit-2.0.3.4
FASTQUERY_FILE=fastquery-0.8.4.10.tar.gz
FASTQUERY_VERSION=0.8.4.10
FASTQUERY_BUILD_DIR=fastquery-0.8.4.10
GDAL_FILE=gdal-1.10.0.tar.gz
GDAL_VERSION=1.10.0
GDAL_COMPATIBILITY_VERSION=1.10
GDAL_BUILD_DIR=gdal-1.10.0
H5PART_FILE=H5Part-1.6.6.tar.gz
H5PART_VERSION=1.6.6
H5PART_COMPATIBILITY_VERSION=1.6
H5PART_BUILD_DIR=H5Part-1.6.6
HDF4_FILE=hdf-4.2.5.tar.gz
HDF4_VERSION=4.2.5
HDF4_COMPATIBILITY_VERSION=4.2
HDF4_BUILD_DIR=hdf-4.2.5
HDF5_FILE=hdf5-1.8.14.tar.gz
HDF5_VERSION=1.8.14
HDF5_COMPATIBILITY_VERSION=1.8
HDF5_BUILD_DIR=hdf5-1.8.14
ICET_FILE=IceT-1-0-0.tar.gz
ICET_VERSION=1.0.0
ICET_COMPATIBILITY_VERSION=1.0.0
ICET_BUILD_DIR=IceT-1-0-0
LLVM_FILE=llvm-4.0.0.src.tar.gz
LLVM_VERSION=4.0.0
LLVM_TARGET=
LLVM_BUILD_DIR=llvm-4.0.0.src
MANTA_FILE=manta-2540.tar.gz
MANTA_VERSION=2540
MANTA_COMPATIBILITY_VERSION=2540
MANTA_BUILD_DIR=manta-2540
MFEM_FILE=mfem-3.3.tgz
MFEM_VERSION=3.3
MFEM_BUILD_DIR=mfem-3.3
MILI_FILE=mili-LGPL-15.1.tar.gz
MILI_VERSION=15.1
MILI_COMPATIBILITY_VERSION=15.1
MILI_BUILD_DIR=mili
MOAB_FILE=moab-4.9.2-RC0.tar.gz
MOAB_VERSION=4.9.2-RC0
MOAB_BUILD_DIR=moab-4.9.2
MPICH_FILE=mpich-3.0.4.tar.gz
MPICH_VERSION=3.0.4
MPICH_COMPATIBILITY_VERSION=3.0.0
MPICH_BUILD_DIR=mpich-3.0.4
MXML_FILE=mxml-2.6.tar.gz
MXML_VERSION=2.6
MXML_COMPATIBILITY_VERSION=2.6
MXML_BUILD_DIR=mxml-2.6
NEKTAR_PLUS_PLUS_FILE=nektar++-4.1.0.tar.gz
NEKTAR_PLUS_PLUS_VERSION=4.1.0
NEKTAR_PLUS_PLUS_COMPATIBILITY_VERSION=1.8
NEKTAR_PLUS_PLUS_BUILD_DIR=nektar++-4.1.0
NETCDF_FILE=netcdf-4.1.1.tar.gz
NETCDF_VERSION=4.1.1
NETCDF_COMPATIBILITY_VERSION=4.1
NETCDF_BUILD_DIR=netcdf-4.1.1
OPENSSL_FILE=openssl-1.0.2j.tar.gz
OPENSSL_VERSION=1.0.2j
OPENSSL_BUILD_DIR=openssl-1.0.2j
OPENSWR_FILE=mesa-17.0.6.tar.gz
OPENSWR_VERSION=17.0.6
OPENSWR_TARGET=
OPENSWR_BUILD_DIR=mesa-17.0.6
PIDX_FILE=PIDX-0.9.1.tar.gz
PIDX_VERSION=0.9.1
PIDX_COMPATIBILITY_VERSION=1.8
PIDX_BUILD_DIR=PIDX-0.9.1
PYSIDE_FILE=pyside-combined-1.2.2.tar.gz
PYSIDE_VERSION=1.2.2
PYSIDE_PLATFORM=
PYSIDE_BUILD_DIR=pyside-combined-1.2.2
SILO_FILE=silo-4.10.1.tar.gz
SILO_VERSION=4.10.1
SILO_COMPATIBILITY_VERSION=4.10.1
SILO_BUILD_DIR=silo-4.10.1
SZIP_FILE=szip-2.1.tar.gz
SZIP_VERSION=2.1
SZIP_COMPATIBILITY_VERSION=2.0
SZIP_BUILD_DIR=szip-2.1
TCMALLOC_FILE=google-perftools-0.97.tar.gz
TCMALLOC_VERSION=0.97
TCMALLOC_COMPATIBILITY_VERSION=0.97
TCMALLOC_BUILD_DIR=google-perftools-0.97
UINTAH_FILE=Uintah-2.0.0.tar.gz
UINTAH_VERSION=2.0.0
UINTAH_COMPATIBILITY_VERSION=2.0
UINTAH_BUILD_DIR=Uintah-2.0.0/optimized
VISUS_FILE=ViSUS-5f5fd6c-Darwin.tgz
VISUS_VERSION=5f5fd6c
VISUS_BUILD_DIR=ViSUS
VTKM_FILE=vtkm-763de94.tar.gz
VTKM_VERSION=763de94
VTKM_BUILD_DIR=vtkm-763de94
XDMF_FILE=Xdmf-2.1.1.tar.gz
XDMF_VERSION=2.1.1
XDMF_COMPATIBILITY_VERSION=2.1.1
XDMF_BUILD_DIR=Xdmf
ZLIB_FILE=zlib-1.2.7.tar.gz
ZLIB_VERSION=1.2.7
ZLIB_COMPATIBILITY_VERSION=1.2
ZLIB_BUILD_DIR=zlib-1.2.7

Environment variables Examples

To try HDF5 version 1.8 instead of the 1.6.6 used default:

env HDF5_FILE="hdf5-1.8.0.tar.gz" HDF5_VERSION="1.8.0" \
HDF5_DIR="hdf5-1.8.0" HDF5_COMPATIBILITY_VERSION="1.8" ./build_visit

In general, the tarball (or untarred directory) needs to exist in the current directory. Variables such as SILO_FILE, SILO_VERSION, SILO_COMPATIBILITY_VERSION (Macintosh specific), and SILO_DIR would need to be defined. To over-ride the default compilers and compiler flags and use the PathScale compiles:

env C_COMPILER=pathcc CXX_COMPILER=pathCC \
C_OPT_FLAGS="-Ofast -fPIC" CXX_OPT_FLAGS="-Ofast -fPIC"  ./build_visit

To define compile and link flags for parallel compiling:

env PAR_INCLUDE="-I/usr/lib/mpi/include" \
PAR_LIBS="-Wl,-rpath=/usr/lib/mpi/mpi_gnu/lib \
-L/usr/lib/mpi/mpi_gnu/lib -lmpi" ./build_visit

To define compile and link flags for parallel compiling on a Macintosh which uses OpenMPI:

env PAR_INCLUDE="-D_REENTRANT" \
PAR_LIBS="-Wl,-undefined,dynamic_lookup -Wl,-u,_munmap \
-Wl,-multiply_defined,suppress -lmpi_cxx -lmpi -lopen-rte -lopen-pal" ./build_visit

Installing after a build

If you want to install VisIt after it has been built, pass the --prefix command line argument.

sudo ./build_visit --prefix /usr/local/visit

Alternatively, you can install it yourself manually by making a tarball and running the visit-install script on it.

VER=2.12.3
cd visit$VER/src
make package
sudo svn_bin/visit-install $VER linux-x86_64 /usr/local/visit