Macaulay2 / M2

The primary source code repository for Macaulay2, a system for computing in commutative algebra, algebraic geometry and related fields.
https://macaulay2.com
330 stars 226 forks source link

Submodule updates for autotools build #3289

Closed d-torrance closed 3 weeks ago

d-torrance commented 3 weeks ago

Rather than building tarballs and submodules completely differently using the autotools build, we do everything in the libraries directory, as was done for flint in #3281. This simplifies maintenance, as all we need to do to switch back and forth between tarball and submodule builds is set the SUBMODULE variable in the approriate Makefile. It also allows us to remove a bunch of code from GNUmakefile.

We also update the autotools build to use the same submodules that the cmake build does, adding bdwgc, frobby, and googletest.

mahrud commented 3 weeks ago

I'll reiterate that I'd prefer not using submodules, and if I had more time I would move cmake to not use submodules for flint, bdwgc, and googletest. The main reason we had flint as a submodule was that we needed a lot of patches to get it to work with mpir, which is out of the picture now.

Update: reading the changes, I see that this PR is actually aligned with this goal. Thank you!

Also, to be clear, cmake doesn't actually build mathic, etc. anymore. They get built as a part of the engine.

d-torrance commented 3 weeks ago

I have no strong opinion either way -- I always just use packaged libraries and don't worry about building anything other than M2 itself. With the commits switching bdwgc, frobby, and googletest, I was mostly just trying to make the autotools build more consistent with the cmake one.

If we switch back to tarballs for any of these things with the cmake build, with this PR it will be really easy to do the same for the autotools build -- just remove the SUBMODULE = true line from the corresponding Makefile.