guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Where to install files?


From: Ludovic Courtès
Subject: Re: Where to install files?
Date: Wed, 12 Oct 2005 10:29:46 +0200
User-agent: Gnus/5.110004 (No Gnus v0.4) Emacs/21.4 (gnu/linux)

Hi,

Neil Jerram <address@hidden> writes:

> - At Guile configuration time, we allow the builder to specify an
>   arbitrary set of load path directories, each with a tag and a
>   description, something (semantically speaking) like this:
>
>   '(("/usr/share/guile/1.6"
>      "1.6"
>      "Install location for Guile 1.6's own Scheme files")
>
>     ("/usr/share/guile/site"
>      "site"
>      "Install location for site-specific Scheme files")
>
>     ("/opt/gnome/guile"
>      "gnome"
>      "Install location for GNOME-related Scheme files")
>
>     ("/usr/local/share/guile"
>      "local"
>      "Version-independent non-distribution-managed Scheme files")
>
>     ("/usr/local/share/guile/1.6"
>      "local-1.6"
>      "1.6-dependent non-distribution-managed Scheme files"))
>
> - Guile would always then initialize its %load-path to the union of
>   all these locations.
>
> - guile.m4 would provide a --with-guile-scheme-dir=TAG option to
>   ./configure, which would set GUILE_SCHEME_DIR to the location for
>   TAG, and a macro
>
>     GUILE_SCHEME(default-tag)

I like this approach quite well.  It's generic, and it can be used
handle both Guile versioning and module versioning.  Having it in
`init.scm' or some such rather than hardcoded at configuration time
sounds like a good idea too.

Just a couple of notes.  I might look better to use either an alist or
keywords (like `((:tag "1.6" :dir "/usr..."))') to store this
information, but this is really nitpicking.  As for the contents of this
list, I believe the `site' and `local' tags should by default be
configured as `site-MAJOR.MINOR' and `local-MAJOR.MINOR' so that nothing
ends up being installed in unversioned directories.

Thanks,
Ludovic.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]