End-to-end Compilation Examples
RHEL7
The following are instructions for building Dakota on a Redhat 7 platform in a Bash shell.
Install the recommended version of CMake, and ensure it is in your $PATH.
Extract Dakota source archive file. In the example below, Dakota will be extracted into the user’s home directory, /home/username.
cd $HOME tar xzvf /path/to/dakota-<release>.src.tar.gz
You will see a new directory, /home/username/dakota-<release>.<platform>. In the instructions below, $DAK_SRC refers to this directory.
export DAK_SRC=$HOME/dakota-<release>.<platform>
Create separate build directory, e.g. $HOME/dakota-build. In the instructions below, $DAK_BUILD refers to the directory that you create for CMake to configure and build Dakota.
mkdir -p /path/to/Dakota/build/directory export DAK_BUILD=/path/to/Dakota/build/directory
Make a copy of the template BuildDakotaTemplate.cmake to customize a CMake Dakota build for your platform. Keep the file in the $DAK_SRC/cmake directory to use for subsequent Dakota CMake builds.
cp $DAK_SRC/cmake/examples/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
Update $DAK_SRC/cmake/BuildDakotaCustom.cmake file to reflect your platform configuration. Instructions are provided in that file.
As an example, consider the need to specify a custom location for the
Boost 1.69 library, eg in /extra/boost_1_69_0
. The appropriate lines
to uncomment and modify in the BuildDakotaCustom.cmake file are these:
set(BOOST_ROOT
"/extra/boost_1_69_0"
CACHE PATH "Use non-standard Boost install" FORCE)
set( Boost_NO_SYSTEM_PATHS TRUE
CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
Consider also specifying a custom location for the Dakota installation artifacts, eg:
set( CMAKE_INSTALL_PREFIX
"~/temp/dakota-installation"
CACHE PATH "Path to Dakota installation" )
Configure and build Dakota.
cd $DAK_BUILD cmake -C $DAK_SRC/cmake/BuildDakotaCustom.cmake $DAK_SRC make [-j#] make install
Set paths and library paths. In the instructions below, $DAK_INSTALL refers to the Dakota installation path you specified for the variable CMAKE_INSTALL_PREFIX in your BuildCustom.cmake file.
export PATH=$DAK_INSTALL/bin:$DAK_INSTALL/test:$PATH export LD_LIBRARY_PATH=$DAK_INSTALL/lib:$DAK_INSTALL/bin:$LD_LIBRARY_PATH
Test that Dakota is working, eg
which dakota dakota -v
These should return the path to the dakota executable and a couple of lines of text indicating the version of dakota built, respectively.
Note
The following tips apply to all types of builds:
make [-j#]
: Dakota supports concurrent build processesmake install
requires write privileges inCMAKE_INSTALL_PREFIX
.Executing cmake without any options will result in an attempt to build with as many vendor algorithms and packages as are available in the distribution. See options in Dakota Features to turn off features.
Once make has successfully completed, the generated Dakota executables (dakota and dakota_restart_util) will reside in
$DAK_BUILD/src
. Ifmake install
is invoked, copies of the executables will be placed inCMAKE_INSTALL_PREFIX/bin
and copies of the libraries (libdakota.a
, etc.) are placed inCMAKE_INSTALL_PREFIX/lib
. You may setCMAKE_INSTALL_PREFIX
inBuildDakotaCustom.cmake
.
MacOS
A terse example of how to build at the command line using the mixed system Clang plus Homebrew gfortran example
cmake -D CMAKE_C_COMPILER=clang -D CMAKE_CXX_COMPILER=clang++ -D CMAKE_Fortran_COMPILER=gfortran \
-D BOOST_ROOT:PATH=/usr/local -D DAKOTA_HAVE_MPI:BOOL=TRUE \
-D HAVE_QUESO:BOOL=TRUE -D DAKOTA_HAVE_GSL:BOOL=TRUE
-D DAKOTA_HAVE_HDF5:BOOL=TRUE ../source
make -j 4
Windows 10
A terse example of how to build using the Windows example environment. Representative paths to installed libraries are shown in the configuration commands below.
In a command prompt (alternately can of course make CMake settings via the GUI or a cache initialization file):
cmake.exe -G "Visual Studio 16 2019" -A x64 ^
-D BLAS_LIBS=C:/local/64bit/lapack/3.10.1/static/lib/BLAS.lib -D LAPACK_LIBS=C:/local/64bit/lapack/3.10.1/static/lib/LAPACK.lib ^
-D Boost_INCLUDE_DIR=C:/local/64bit/boost_1_71_0 -D Boost_LIBRARY_DIR=C:/local/64bit/boost_1_71_0/lib64-msvc-14.2 ^
-D BUILD_SHARED_LIBS=FALSE ^
-DDAKOTA_HAVE_HDF5:BOOL=TRUE -DHDF5_USE_STATIC_LIBRARIES:BOOL=TRUE -DHDF5_ROOT="C:/local/64bit/hdf5.static.nozlib/1.10.8" ^
-D DAKOTA_PYTHON_DIRECT_INTERFACE:BOOL=TRUE -D DAKOTA_PYTHON_DIRECT_INTERFACE_NUMPY:BOOL=FALSE -D DAKOTA_PYTHON_SURROGATES:BOOL=FALSE ^
../source
Then:
Open the Visual Studio solution file
Dakota.sln
in Visual StudioChoose a build configuration, e.g.,
Release
orDebug
, using Configuration ManagerBuild the
ALL_BUILD
and optionallyINSTALL
orPACKAGE
targets
Alternately the build can be driven with nmake
, devenv
, or
cmake --build
with appropriate arguments.