Hi Al,

On Sat, 3 Feb 2024 12:22:46 +0200 Al <frm...@mailgw.com> wrote:

> I'd like to distribute a project that uses chicken and a number of
> eggs. In the Makefile, I'm trying to add a target that ensures the
> user has those eggs installed. However,
>
> * chicken-install seems to proceed unconditionally (even if egg is
>   already installed).

Right.  If you ask chicken-install to install an egg, it'll do so.  It
might skip its dependencies in case they are already installed.
chicken-install might skip fetching/compiling eggs in case they can be
found in the chicken-install cache (typically ~/.cache/chicken-install).

> * I see no chicken-uninstall, or at least chicken-remove-all-eggs, so
>   that at least I can test things in a clean-room installation,
>   without rebuilding

chicken-uninstall is part of the installation of chicken.  It should be
available in the same directory where chicken-install is located.

> I came up with a way sed hack to extract all imports, transform those
> to arguments for "chicken-status -list", and generate a
> chicken-status.scm file (which can then be processed by
> "chicken-install -from-list"). But still it installs
> unconditionally. I could add an extra step to check if "csi import
> egg... </dev/null" returns an error code, but it's getting ugly.
>
>
> What to do? Maybe I should convert my project to egg format?

That probably would be the easiest way.

All the best.
Mario
-- 
http://parenteses.org/mario

Reply via email to