guile-user
[Top][All Lists]
Advanced

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

Re: Where to install files?


From: Neil Jerram
Subject: Re: Where to install files?
Date: Mon, 10 Oct 2005 23:54:06 +0100
User-agent: Gnus/5.1007 (Gnus v5.10.7) Emacs/21.4 (gnu/linux)

Kevin Ryde <address@hidden> writes:

> Neil Jerram <address@hidden> writes:
>>
>> Can someone tell me the Makefile.am incantations for determining where
>> a package should install Scheme and Elisp files?
>
> For the lisp bits, AM_PATH_LISPDIR in configure.ac then
>
>       dist_lisp_LISP = foo.el
>
> or if you don't want it byte-compiled,
>
>       dist_lisp_DATA = foo-autoloads.el foo-devel.el

Thanks.  I realized after posting that my package already does this,
but I'd still like to probe a bit further about whether it is right,
and hence if something similar should apply to Scheme files.

With Emacs under Debian, for example, use of AM_PATH_LISPDIR means
that stuff installed by "./configure; make; make install" goes under
/usr/share/emacs (and so not somewhere like /usr/local/share/emacs).

Is that appropriate?  Do distributions like Debian have policy on
where files should go in such cases?  (i.e. files from packages for a
distribution-managed program, but where the package is not itself
distribution-managed.)

I guess you could say that AM_PATH_LISPDIR defines the policy, and
that if Debian (or other distribution) wanted such files to go under
/usr/local, they could have arranged for AM_PATH_LISPDIR to return
/usr/local/share/emacs.  (Could they in fact do this?)

If the last para is correct, and similar arguments apply to Scheme
files, I think the implications are that

- Guile's configure should allow separate specification of

  (1) overall installation prefix (e.g. /usr)

  (2) default install location for distribution-managed packages
      (e.g. /usr/share/guile, default=(1)/share/guile)

  (3) default install location for non-distribution-managed packages
      (e.g. /usr/local/share/guile, default=(2))

  (4) a location for site-local files
      (e.g. /usr/local/share/guile/site, default=(3)/site)

  (5) location of the system init file (e.g. /etc/guile/1.6/init.scm,
      default=init.scm)

- At runtime, Guile would initialize its load path using (1), (2), (3)
  and (4), and read the init file from (5).

- When a package's configure is run, guile.m4 should be able to
  provide either (2) or (3) as the value of a Makefile.am variable
  GUILE_SCHEME_DIR:

  - GUILE_SCHEME_DIR would give (2) if a package's ./configure was run
    with a --with-dist-managed-install-dir option  (as a convenience
    for distribution packagers)

  - GUILE_SCHEME_DIR would give (3) if a package's ./configure was run
    without this option  (the normal case for people building tarballs)

Guile's guile.m4 currently provides GUILE_SITE_DIR, but that feels
wrong to me both because it doesn't handle the (2)/(3) distinction
above, and because of the /site ending - I think of site as being for
code put there by the local sysadmin, not for code from packages at
all.

Thoughts?  (People commenting on this may also want to review the
thread from last year that began at
http://lists.gnu.org/archive/html/guile-devel/2004-11/msg00016.html)

      Neil





reply via email to

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