chicken-users
[Top][All Lists]
Advanced

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

Re: [Chicken-users] chicken-setup


From: Peter Bex
Subject: Re: [Chicken-users] chicken-setup
Date: Tue, 15 Jul 2008 09:11:20 +0200
User-agent: Mutt/1.4.2.3i

On Tue, Jul 15, 2008 at 10:01:52AM +0900, Ivan Raikov wrote:
>    The frontend would also have a list of default installation
> locations for each type of file (library, program, etc.). Using these
> defaults, the frontend could for example generate the following
> installation script:
> 
>  ((source-locations "."  "/home/user/tmp/chicken-4-user-downloads"
>                     "ftp://call/cc.org/eggs/4";)
>   (installation-locations ((library "/usr/lib/chicken/4")
>                            (program "/usr/bin/")
>                            (doc     "/usr/share/doc")))
>   (library treap
>            (make (treap.scm) ;; source files
>                  (compile -O2 -d0 -s treap.scm -ldl -lchicken)))) 
>                  ;; compilation commands
> 
> This specification would be passed to the interpreter, along with
> commands such as "compile" "install" "uninstall", etc. 
> 
>    The idea is basically to isolate all of the general procedures for
> e.g. installation and compilation, which once written would probably
> stay relatively unchanged, and only modify the frontend as
> chicken-setup policies evolve. We could also think about having
> different frontends, e.g. for use with different package building
> tools. 

Sounds good so far!
One other thing that needs consideration is how to handle
system-specific things like include/library paths and possibly names
of libraries, for building bindings to C libraries.

I don't think this can be solved automatically (unless we want to
recreate Autotools or CMake) so what is needed is a way to override or
add to existing search paths by passing switches to chicken-setup,
which it then can pass on to the compiler. Example:

chicken-setup foo.egg -I /opt/foo/include -L /opt/foo/lib

Or possibly something slightly smarter that knows about lpaths and
rpaths for libraries.

This makes it easier to install eggs on systems without having to hardcode
paths in setup files.  This means it would not be necessary anymore to
untar an egg file, go in and hack the setup file and then rebuild, making
the process of installing egg files much more natural and user-friendly.

Cheers,
Peter
-- 
http://sjamaan.ath.cx
--
"The process of preparing programs for a digital computer
 is especially attractive, not only because it can be economically
 and scientifically rewarding, but also because it can be an aesthetic
 experience much like composing poetry or music."
                                                        -- Donald Knuth

Attachment: pgpsfra9LPcdb.pgp
Description: PGP signature


reply via email to

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