Skip to content

Building M2

Mahrud Sayrafi edited this page Jun 22, 2026 · 5 revisions

Building M2 (using dependencies from Homebrew)

From the git repository

If Macaulay2 is bottled on Homebrew for your platform, you can reduce the compilation time by installing dependencies from Homebrew when compiling Macaulay2 from source.

brew tap Macaulay2/tap
brew trust Macaulay2/tap
brew install ccache $(brew deps --1 --include-build Macaulay2/tap/M2)

OPT_PREFIX=$(brew deps --1 --include-build macaulay2/tap/M2 | \
	cut -d'/' -f3 | sed "s|^|$HOMEBREW_PREFIX/opt/|" | paste -sd';' -)

Then, from the top directory of the git repository, run:

cd M2/BUILD/build
cmake -GNinja -S ../.. -B . \
      -DBUILD_NATIVE=OFF \
      -DCMAKE_PREFIX_PATH=$OPT_PREFIX \
      -DCMAKE_BUILD_TYPE=Release \
      -DCMAKE_INSTALL_PREFIX=/usr

ninja M2-core

Possibly relevant issues:

If you are having issues with slow brew builds from source or errors while generating the documentation, you can instead try building the upstream version of Macaulay2 with:

brew install Macaulay2/tap/M2 --HEAD

then installing the package documentation files with:

brew install Macaulay2/tap/Macaulay2-common

Note: the documentation may be outdated. If this is your only option to access Macaulay2, ask a maintainer to update the documentation.

Clone this wiki locally