[Top][All Lists]
[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.