# Tutorial for a fully working GetFEM installation on MacOS systems

**URL:** <https://getfem.discourse.group/t/tutorial-for-a-fully-working-getfem-installation-on-macos-systems/62>\
**Category:** General\
**Created:** [January 31, 2025, 5:15pm UTC](https://getfem.discourse.group/t/tutorial-for-a-fully-working-getfem-installation-on-macos-systems/62 "2025-01-31T17:15:54Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Francesco](https://avatars.discourse-cdn.com/v4/letter/f/e47c2d/32.png) [@Francesco](https://getfem.discourse.group/u/Francesco)\
**Post date:** [January 31, 2025, 5:15pm UTC](https://getfem.discourse.group/t/tutorial-for-a-fully-working-getfem-installation-on-macos-systems/62/1 "2025-01-31T17:15:54Z")

</div>

I thought to write down a complete tutorial for Apple users to get a fully working GetFEM installation on their machines. The following turns out to work well, in particular, on an Apple Silicon machine, where the default Homebrew directory is `/opt/homebrew`, unlike Intel machines. It is also worth to mention that the `GCC 14` compiler is required (install by `brew install gcc` in case it’s missing).

So, in addition to the procedure described [here](https://getfem.org/install/install_mac.html) for `qhull`, `m4`, `automake`, the Python packages, etc., starting from GetFEM 5.4.3, neither SuperLU nor MUMPS ship with the GetFEM distribution.

To install SuperLU, run

`brew install superlu`

In theory, SuperLU should suffice, but in practice, with just SuperLU, the installation of GetFEM you obtain will only be “partial”.

Hence, I would suggest to additionally install MUMPS, by first running

`brew tap brewsci/num`

Then, before installing MUMPS (5.3.5 is the only one I was able to install, so far), go to the following directory

`/opt/homebrew/Library/Taps/brewsci/homebrew-num/Formula`

Now, two files have to be modified: `brewsci-metis.rb` and `brewsci-mumps.rb`.

In `brewsci-metis.rb`, change the url and the sha256 line as follows:

```auto
url "http://deb.debian.org/debian/pool/main/m/metis/metis_5.1.0.dfsg.orig.tar.xz"
sha256 "c50a88b92b01fa3972c5c92cf50117f126c62589b8f793657c7d865c59c23615"

```

In `brewsci-mumps.rb`, change the url and the sha256 line as follows:

```auto
url "https://ftp.mcs.anl.gov/pub/petsc/externalpackages/MUMPS_5.3.5.tar.gz"
sha256 "9cf89fcb5232560e807b7b1cc2adb7d0c280cbdfd3aa480de1d0b431a87187d3"

```

then comment the line

`noall_load = OS.mac? ? "-noall_load" : "--no-whole-archive"`

and remove all occurrencies of `"-Wl,#{noall_load}",` in the file.

At this stage, you can run (for the sequential MUMPS)

`brew install brewsci-mumps –without-mpi`

After all this, you can run the `configure` script for GetFEM as follows (assuming your Homebrew is in `/opt/homebrew`, which is the case for Apple Silicon machines):

```auto
./configure CXX=g++-14 CC='gcc-14 -arch arm64 -ld_classic' CXXFLAGS='-arch arm64 
-ld_classic -no-pie -I/opt/homebrew/Cellar/qhull/2020.2/include 
-I/opt/homebrew/opt/brewsci-mumps/include' FC='gfortran-14 -arch arm64 
-ld_classic' CXXCPP='g++-14 -E -arch arm64 -ld_classic' CPP='g++-14 -E 
-arch arm64 -ld_classic' --enable-metis --enable-python --enable-matlab=no 
--enable-shared --disable-dependency-tracking --prefix=/opt/homebrew/ --enable-superlu
LDFLAGS='-L/opt/homebrew/Cellar/superlu/7.0.0/lib -L/opt/homebrew/Cellar/qhull/2020.2/lib
-L/opt/homebrew/opt/brewsci-mumps/lib' --with-superlu-include-dir=/opt/homebrew/Cellar/
superlu/7.0.0/include --enable-mumps --with-mumps='-lsmumps -ldmumps -lcmumps
-lzmumps -lpord -lmpiseq' --with-mumps-include-dir=/opt/homebrew/opt/brewsci-mumps/include
LIBS='-lmumps_common -lpord -lmpiseq'

```

You can perhaps remove the option `-arch arm64` on Intel machines.

At this stage, you can run

`make`

and finally

`make install`

to install GetFEM, as described [here](https://getfem.org/install/install_mac.html).

As a last step, to make sure your installation is sound, move to the GetFEM directory and run

`make check`
