Collab:VisItWiki BuildingVisIt
This page is essentially a log by Hank Childs, detailing the steps Hank took to port VisIt to a new machine. Most non-developers should just use the anonymous SVN repository for checkout (e.g. svn co http://visit.ilight.com/svn/visit/trunk/src/ for a trunk checkout). Since I am a developer, I wanted to check out using my NERSC SVN account, so I could commit any changes. This page most relates to the developer point of view (i.e. getting SVN scripts set up, passwordless ssh, etc.)
Contents
Machine setup
The machine doesn't have wget, but it does have svn. If it didn't have either wget or svn, I would have resorted to scp'ing in the files I needed.
Steps followed
Set up passwordless svn
- There is a how-to here . But there is an extra wrinkle. I am already running passwordless from many other machines and I want to keep doing so. So I need to make sure those other keys are maintained. I'll do that by getting the existing authorized_keys file and just appending to it.
% cd .ssh % ssh-keygen -t rsa % scp hrchilds@portal-auth.nersc.gov:~/.ssh/authorized_keys ./svn_nersc_authorized_keys % cat id_rsa.pub >> svn_nersc_authorized_keys % scp svn_nersc_authorized_keys hrchilds@portal-auth.nersc.gov:~/.ssh/authorized_keys
Setting up environment
For VisIt's SVN scripts to work, you need to have the environment variable "SVN_NERSC_NAME" defined to be your account name at portal-auth.nersc.gov. (My account name on portal-auth.nersc.gov is hrchilds.) In this case, the shell was bash.
% echo "export SVN_NERSC_NAME=hrchilds" >> .bash_profile
Getting VisIt's SVN scripts
VisIt has a set of scripts that help with SVN actions. I got these scripts manually:
% svn co svn+ssh://hrchilds@edison.nersc.gov/project/projectdirs/visit/svn/visit/trunk/src/tools/dev/scripts
Checking out the trunk
The first step is really to build the third party libraries. But the script build_visit
can do this and it is located with VisIt's source code on the Subversion trunk.
% scripts/co_trunk /src
This took about ten minutes for me, because it checks out each of VisIt's source files one at a time (I believe) and it was going back and forth between the U.S. and Europe.
build_visit
The build_visit
script is located at trunk/src/tools/dev/scripts/build_visit
. We create a link to build_visit (and the bv_support directory) outside the SVN working copy, because it would otherwise download files into the Subversion working copy of the VisIt source tree. We also tell the build_visit script to install the packages that we build to a directory called thirdparty_shared. Unless otherwise specified, build_visit will store the third party libraries in a visit subdirectory from where the script is run.
% cd trunk % mkdir thirdparty_shared % ln -s ./src/tools/dev/scripts/build_visit . % ln -s ./src/tools/dev/scripts/bv_support . % ./build_visit --console --svn --thirdparty-path ./thirdparty_shared
I ran it specifically from ~/trunk
, because the build_visit
script looks for the VisIt source tree at ./src
. If I ran it from one level up, it wouldn't have realized I had already checked it out.
- --console means don't use the graphical interface.
- --svn means check out files using Subversion.
Future builds
The build_visit
script placed all of the third party libraries into trunk/visit
. You can either leave them there, or relocate them to another directory. A good reason to relocate them might be to put them in a more permanent location or to make the directory available to more folks. The build_visit
script also created a file named hostname.conf
. Copy that file into the trunk/src/config-site
directory. When you run the VisIt configure, it will find that file and be able to locate all of the third party libraries. Restated, setting up that file means that you don't have to run build_visit
again in the future ... you only have to do a Subversion checkout and compile the VisIt code itself.