Obtaining the xSDK installation script
git clone https://github.com/xsdk-project/installxSDK.git cd installxSDK git checkout v0.1.0
curl https://raw.githubusercontent.com/xsdk-project/installxSDK/v0.1.0/installxSDK.sh \ > installxSDK.sh
sh ./installxSDK.sh --prefix="installation directory" [other configure options]
See details about installing on specific target platforms.
sh ./installxSDK.sh --prefix=/usr/local/xSDK --with-mpicc=/usr/local/mpich/bin/mpicc \ --with-mpicxx=/usr/local/mpich/bin/mpicxx --with-mpif90=/usr/local/mpich/bin/mpif90
--help List all the possible options (most you will never need)
--with-packages-dir=adirectory For use from behind a firewall, will not download needed packages but instead will direct user to download the packages to the given directory and then use those found in the directory
--download-mpich Useful if you do not have an MPI installed on your machine.
--with-blaslapack-dir="directory to locate BLAS and LAPACK" Usually you should not need this.
--with-git=0 Do not use git to download any of the packages; use the tarballs instead.
--disable-debug Build optimized version of libraries (debug is the default).
--with-boost-dir="directory where boost is installed" Boost takes forever to install so this is a good option to use if you have boost installed already.
--with-trilinos=0 Install xSDK except for Trilinos (Boost is also not installed since it is needed only by Trilinos).
--download-xxx=/directoryname Add your own package to be automatically downloaded and installed. /directoryname/xxx.py should contain a subclass of config.package.GNUPackage, config.package.CMakePackage, or config.package.Package containing specific information about your package, its download location and dependencies. See, for example, http://www.mcs.anl.gov/petsc/petsc-dev/config/BuildSystem/config/packages/hypre.py, http://www.mcs.anl.gov/petsc/petsc-dev/config/BuildSystem/config/packages/metis.py, or http://www.mcs.anl.gov/petsc/petsc-dev/config/BuildSystem/config/packages/triangle.py.
Work in the xSDK is motivated by large-scale scientific applications, including use-cases in environmental system science. The xSDK includes the Alquimia geochemistry package, which in turn uses PFlotran as a chemistry engine. The script can install these application-specific packages, as indicated below. The script can also install external packages that are needed by the Amanzi application.
Options for application-specific installs
--download-alquimia --download-pflotran Install Alquimia and PFlotran.
--download-ideas Install xSDK packages and external software needed by Amanzi.
- The installation script will, by default, download and install four xSDK numerical libraries (hypre,PETSc, SuperLU_dist, and Trilinos) as well as some commonly needed external packages (boost, HDF5,NetCDF, exodusii, METIS, and ParMETIS).
- To use an already installed package, add the argument --with-xxx-dir=/dir, for example, --with-boost-dir=/usr/local
- To prevent downloading a particular package, add the argument --download-xxx=0, for example, --download-trilinos=0
- To install a subset of packages, you must turn off all packages you do not want.
- Use a different prefix for debug and optimized builds.
- Except for a couple of minor exceptions, this script will NOT rebuild packages that have not changed between calls to the script. Thus, calling it a second time with the same prefix will be much faster.
- This script has very little automatic management of dependencies or version management.