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
Contents
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