-
-
Notifications
You must be signed in to change notification settings - Fork 698
Description
Various packages can be built with or without the presence of some other packages.
For example, the latte_int configure script detects lrslib and lidia if they are installed, and they provide additional features. lidia is quite a big package, and so it is not clear whether it should be a dependency. (Linux package managers have the notion of suggested or recommended packages for this situation.)
GNU make's "order-only dependencies" "sound" as if they can do this, but as Jeroen explains, they can't.
Of course, the user can just work around this issue by doing sage -i lidia && sage -i latte_int (or similar invocations such as make lidia latte_int, which are sequential from left to right thanks to our top-level Makefile), but we must find a proper solution that ensures reproducible (deterministic) builds when a parallelized make is used. In particular, this is relevant after #21538, which provides ./configure --enable-lidia --enable-latte_int && MAKE=-j12 make, for which the sequential workaround is not available.
This feature can be implemented by Makefile trickery, of course. See #30560.
Tickets:
-
Make openssl an optional dependency of python3 #30560:
opensslan optional dependency ofpython3 -
giacdetectscocoa(which we have added as an experimental package) -
pynacis able to usegiacif present (but we currently explicitly disable its use) -
latte_intis able to uselidiafor one subroutine -- a huge and unmaintained package; currently it is a normal dependency -
polymakehas lots of optional dependencies
Depends on #31017
CC: @tscrim @dimpase @videlec @jhpalmieri @slel
Component: build: configure
Issue created by migration from https://trac.sagemath.org/ticket/21700