Finesse 3 should build on both Intel and Apple (ARM) machines.

When installing on macOS you’ll need to ensure you have xcode and its command line utilities installed. Xcode can be installed from the app store. Once that is installed open a terminal and install the command line utilities:

$ xcode-select --install

Use MacPorts or Brew to install the suitesparse library. Alternatively you can also get it using Conda if you are using that anyway for environment or package managing.

Getting source code

First download the source code. Once the relevant system packages are installed simply clone the repository and build Finesse as described below. By default this will install the latest stable version.

$ git clone -b master
$ cd finesse3


If you are using Conda as your package manager run:

$ make develop-conda

This will install the development and build dependencies. Installing Finesse can take some time as it needs to compile some extensions before it can run. You should see no errors and the version number installed should be printed. Once you’ve run this command, you can quickly test if it has worked by running:

$ kat3 --version

If you see the Finesse version printed, everything should be configured correctly.

Macports or Homebrew

Using either you’ll need to install suitesparse and the openmp library. Once the packages have been installed run:

$ make develop-pep517

Known problems

macOS Catalina can sometimes thrown an error that it cannot find stdio.h. This appears to be a path setup issue. It can be fixed using

$ export CPATH='/Applications/'
$ export LIBRARY_PATH='/Applications/'

Rebuilding Finesse

Once you have installed Finesse from source you can easily get updates and rebuild it by executing the following commands from the Finesse repository directory:

$ git pull
$ make clean
# If you are using macports or homebrew use
$ make develop-pep517
# or if you are using Conda
$ make develop-conda

This should rebuild Finesse and can take some time. For small changes to the source you can omit make clean.

Occasionally changes to the build tooling will require a complete reset of the local clone of the Finesse repository. To do this, the command make realclean can be used above instead of make clean.

Changing Finesse versions after installation

Switching versions in Finesse involves checking out a different git branch. The process is similar to above when rebuilding, except you use git checkout beforehand. It is recommended to use make clean when switching branches or commits.

$ cd finesse3
$ git checkout [ref]
$ git pull
$ make clean
$ make install-pep517

You can replace [ref] with one of:


The latest stable release.


The latest development release (not necesarily stable or runnable).

e.g. 3.0a1

A particular tag.