On Fri, Sep 5, 2025 at 6:22 PM Tomas Volf <~@wolfsden.cz> wrote:
>
> Hello,
>
> Nikolaos Chatzikonstantinou <nchatz...@gmail.com> writes:
>
> > Hello list,
> >
> > I am trying to "fix" the support of GNU Guile in Autotools. Guile
> > ships its guile/meta/guile.m4 macros, that among other things, set
> > GUILE_SITE to /usr/share/guile/site/3.0/ (on Debian 12) or similar.
> >
> > Since automake does not understand bin_PROGRAMS, etc, for Guile,
> > programmers are forced to use _DATA to ship scheme files:
> >
> >     foo_DATA = foo.scm
> >     foodir = $(GUILE_SITE)/foo
>
> I do not think this is necessary.  Short snippet extracted from my
> "blueprint" repository for GNU Guile projects:
>
> moddir = $(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)
> ccachedir = $(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache

That's an almost perfect solution. It did not occur to me to use only
the effective version and manually write down the guile/site part
relative to datadir (I was mainly thinking along the lines of hacking
the guile.m4 macros or autoconf/automake itself). It's a bit annoying
that the ccache dir is guile/3.0/site-ccache while the datadir is
guile/site/3.0. I don't understand why, it might just be a mistake. I
wish there were variables that included this part so that one can
simply do $(GUILE_DATA), $(GUILE_CCACHE) or so.

> It seems to me that everything works fine (tested on GNU Guix and on
> macOS).  Maybe I am just missing some edge-case or something
> Debian-specific?

No, it works great. I will move the rest of this to the Guile list. I
do not understand why Guile provides GUILE_SITE, since it cannot be
effectively used, it's a hardcoded path (breaks distcheck, etc).

>From the Guile ML I hope for the following to be discussed:

1) Do we want macros in guile.m4 that provide the entire GUILE_DATA,
GUILE_CCACHE and so on directories? Or will the present guile.m4
suffice?
2) Whichever answer in 1), the manual should be rewritten to show
better examples.

I can provide both the guile.m4 hacking and the additions (examples,
etc) to the manual.

Regards,
Nikolaos Chatzikonstantinou

Reply via email to