Skip to content

Provisioning a build machine

Claudio Bantaloukas edited this page Jan 3, 2022 · 5 revisions

In order to build DASH, your system must meet some requirements. The following instructions are a manual equivalent of how we at CCDC provision the build machine that generates the DASH installers.

Windows

Any modern and patched windows operating system should fit the bill. DASH has very few hardware requirements itself.

We use chocolatey to install the various tools mentioned here, with the exception of the Intel oneAPI tools and Winteracter. We higly recommend that you use it or an equivalent package manager to install the programs below, it will save you tons of time, reduce your chances of installing malware by accident and help you keep your system update.

Visual Studio

The Intel oneAPI legacy Fortran compiler requires a working Visual Studio 2019 installation. The Desktop development with C++ workload will provide the required components

Chocolatey Packages: choco install visualstudio2019community visualstudio2019-workload-nativedesktop

Intel oneAPI compiler

You should first install the Intel oneAPI Base Toolkit package.

At CCDC, we use the online installer and only install the GDB debugger and VTune components, thus saving gigabytes of space on tools we do not require.

You can run the online installer executable and follow the graphical interface or use the installer 'silent mode' to install what's required. The command we use roughly looks like this. Please consult the oneAPI documentation for more details as the instructions here might become stale.

w_BaseKit_p_2021.4.0.3421.exe --silent --remove-extracted-files yes --a --silent --eula=accept --components=intel.oneapi.win.dpcpp_debugger:intel.oneapi.win.vtune --intel-sw-improvement-program-consent=no

Once the Base Toolkit is installed, you need to install the oneAPI HPC Toolkit.

At CCDC, we use the online installer and only install the Fortran compiler component. The other components are not required for building DASH.

You can run the online installer executable and follow the graphical interface or use the installer 'silent mode' to install what's required. The command we use roughly looks like this. Please consult the oneAPI documentation for more details.

w_HPCKit_p_2021.4.0.3340.exe --silent --remove-extracted-files yes --a --silent --eula=accept --components=intel.oneapi.win.ifort-compiler --intel-sw-improvement-program-consent=no

7-Zip

Used to extract files obtained from github

Chocolatey Packages: choco install 7zip

Git

You will need a git client to fetch the source code from github.

Chocolatey Packages: choco install git

CMake

CMake translates the instructions in the CMakeLists.txt file into a Visual Studio specific solution that can be used to build the code.

Chocolatey Packages: choco install cmake

Ninja

Ninja is a modern and fast replacement for the venerable make tool. It is natively supported by CMake. We use ninja to build the code at CCDC.

Chocolatey Packages: choco install ninja

Winteracter libraries

Winteracter is a GUI toolset for the Fortran programming language. It consists of various visual development tools and a substantial subroutine library. A copy must be bought from ISS and installed on your system.

WIX Toolset

WIX Toolset is used to create the installers. Before installing the chocolatey package, you must make sure that the .NET Framework 3.5 Windows Feature is installed or the chocolatey command below will hang.

Chocolatey Packages: choco install wixtoolset

Linux

Any modern Linux distribution should be able to build the code, provided the required dependencies can be installed.

Devcontainer with Visual Studio Code

The simplest way to get started is to install docker and visual studio code on your linux workstation or laptop and open the repository with it. The files in the .devcontainer folder will create an up to date Ubuntu 20.04 container with all required tools and extensions, with the exception of the Winteracter libraries.

Required tools

git

You'll need an up to date git client to fetch this repository. apt install git should do it.

Intel legacy fortran compiler

Intel provide their fortran compiler as a free download as part of their oneAPI HPC toolkit. You can install it manually by following the HPC toolkit page instructions

Repositories for apt, yum and zypper package managers are provided. The intel-oneapi-compiler-fortran package is the only required dependency.

CMake

Modern cmake versions have much improved support for fortran. The cmake download page provides installers and tarballs of the latest version. Install these and make sure they are first in your PATH.

You might find the Alternative Binary Releases section in that page helpful as it provides an apt repository that will keep your cmake up to date.

Ninja (or classic make)

Our instructions require having the ninja build tool installed. Your package manager might provide it but make sure that you're using version 0.10.0 and above as it provides support for Fortran modules. If it's not, please download an up to date version from github.

X11 and OpenMotif libraries

Winteracter requires the OpenMotif libraries. These are typically available on most modern linux distributions. On ubuntu 20.04 you can install them by running

apt install libx11-dev libxss-dev libxxf86vm-dev libxkbfile-dev libxv-dev libmotif-dev libxmu-dev libxinerama-dev

Winteracter also provide their own build of OpenMotif

Winteracter libraries

Winteracter is a GUI toolset for the Fortran programming language. It consists of various visual development tools and a substantial subroutine library. A copy must be bought from ISS and installed on your system.

Winteracter rc tool

If you get a warning that looks like this: rc warning: Unable to locate mixed case filename res/... Trying all lower case and the resulting binary is missing icons and images in dialogs, you should contact Winteracter support and ask for a patched version of the rc tool. The fixed rc tool will be part of the upcoming winteracter 14.10e release.

Working X11 session

Running DASH requires a working X11 session. Setting this up is beyond the scope of this document.

X11 programs in containers

If you're using the devcontainer, we recommend that you run this command on your docker host (not in the container!) xhost local:root. This will allow programs in the devcontainer to access the X11 session on your workstation.