1. Basic Usage

1.1. Doing a minimal build

When using build_visit without any arguments it will do a minimal build of VisIt downloading the VisIt source code by making an anonymous git clone from GitHub and downloading the source code for the third party libraries from NERSC. It will build a serial version of the code without any of the optional I/O libraries. This will result in only the file readers that require no external dependencies to be built. Buiding VisIt in this fashion will give you the highest probability of success.

./build_visit3_0_1

1.2. Building with multiple cores

When build_visit is run by default it will build the code using a single core. This may take a half a day or longer. Modern computers have anywhere from 4 to 80 cores at the time of the writing of this chapter. You can speed up the build process by specify that build_visit use more cores. If you are using a shared resource you probably shouldn’t use all the cores in consideration of other users of the system. The following example specifies using 4 cores.

./build_visit3_0_1 --makeflags -j4

1.3. Specifying the third party library install location

When build_visit is run by default it will install the third party libraries in the directory third_party in the current directory. If you would like to install the libraries in another directory for the purposes of sharing them with other users of the system, you can have build_visit install them in a different directory. The following example specifies installing the third party libraries in a another location.

./build_visit3_0_1 --thirdparty-path /usr/gapps/visit/third_party

1.4. Building with the HDF5 and Silo libraries

Some of the more common I/O libraries that will result in building a larger number of file readers are HDF5 and Silo. The following example specifies building HDF5 and Silo.

./build_visit3_0_1 --hdf5 --silo

1.5. Building the stable optional libraries

If you are feeling lucky you can have build_visit build all of the optional I/O libraries that have a high probability of building. The following example specifies building the more reliable of the optional I/O libraries.

./build_visit3_0_1 --optional

1.6. Using a VisIt source code tar file

You can also have visit use the prepackaged source code for a specific version of VisIt instead of doing a git download of the source code. The tar file should be considerably smaller than a git clone. The following example uses the VisIt source code corresponding to the official 3.0.1 release of VisIt.

./build_visit3_0_1 --optional --tarball visit3.0.1.tar.gz

1.7. If build_visit is interrupted

If build_visit is interrupted while it is executing, it is suggested that you remove the directories associated with the last package it was in the process of building. build_visit always leaves directories intact when it runs to aid with troubleshooting failures. Likewise, build_visit doesn’t remove existing directories before starting to build a package. This can sometimes problems when build_visit is interrupted and you restart the build again.

1.8. Finishing up

Once you have successfully built VisIt, there are a couple of directions you can go. The first option is to use it in the location where it was built. The executable can run by executing the following command:

visit/build/bin/visit

if you built using a git clone.

visit3.0.1/build/bin/visit

if you built using a tar file.

The second option is to create a distribution file that you can install using visit-install. This can be done by executing the following command:

cd visit/build
make package

if you built using a git clone.

cd visit3.0.1/build
make package

if you built using a tar file.

1.9. A note about compiler versions

If you encounter problems with build_visit (especially building Qt), it may be due to the compiler version being used.

If building Qt 6, then a fully compliant c++17 compiler is required (g++8 or newer on Linux) otherwise a compiler supporting c++14 is needed, with minimum g++ set to 7.3 or newer on Linux.

Sometimes the absolute latest releases of compilers will cause compile errors during the building of third_party libraries requiring patches to the library’s code base, a change to an older compiler version, or an update to a newer version of the library. If this is the case, and you would like us to support the compiler version you are using, please contact us by one of our Contact methods, letting us know the OS and OS-version as well as the compiler version you are attempting to use, and the version of VisIt being built, along with all compile error messages.