guile-user
[Top][All Lists]
Advanced

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

Re: Make a library installable?


From: Amirouche Boubekki
Subject: Re: Make a library installable?
Date: Tue, 14 May 2019 12:57:46 +0200

Le mar. 14 mai 2019 à 06:42, HiPhish <address@hidden> a écrit :

> Oh cool, I did not know about guile-build-system, that one must be new?


Yes, it somewhat new. Here is the code of it
http://git.savannah.gnu.org/cgit/guix.git/tree/guix/build-system/guile.scm


> I am not seeing anything about it also compiling and installing Info
> documentation
> though.
>

AFAIU it must be done in a specific step. Look at
http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/guile-xyz.scm
for instance guile-pfds as a step that does rename files from .sls to .scm
before building.

Computing is most of the time coding on top of existing infrastructure.
autotools is no different. It has its quirks,
but it works.

[0] I can setup a repository using autotools for bindings and pure guile
modules


> On Monday, 13 May 2019 00:23:31 CEST you wrote:
> > On 2019-05-12 16:50, HiPhish wrote:
> > > Hello Schemers,
> > >
> > > A while ago I presented my MessagePack implementation for Guile[1] here
> > > and I
> > > want to make it available to users.
> > >
> > > Guile has no dedicated package manager,
> >
> > I use guile as my package manager, It is easy enough to install.
> > And Since I keep GUIX environment variable in a dedicated file
> > it doesn't interfere with the host environment. Basically, I have
> > no problem with guix.
> >
> > > so it's either manual or Guix, and I would like to support both. What
> > > it the best way of doing it?
> >
> > Yeah manual is good enough. Also, guix has guile-build-system
> > that doesn't require autotools.
> >
> > Here is the package definition for a small single file project
> > that required to dynamicly load a shared library:
> >
> > (define-public guile-termbox
> >    (package
> >      (name "guile-termbox")
> >      (version "0.1.1")
> >      (home-page "https://git.sr.ht/~amz3/guile-termbox";)
> >      (source (origin
> >                (method git-fetch)
> >                (uri (git-reference
> >                      (url home-page)
> >                      (commit
> > "8d43b12799bc1967b12cf0e86b4c323c1e251cb4")))
> >                (sha256
> >                 (base32
> >                  "1wc2246gg0dg5g7f7djrl0jy7dvzkjhw0idmijwvnd9r1dgksacq"))
> >                (file-name (string-append name "-" version "-checkout"))))
> >      (build-system guile-build-system)
> >      (arguments
> >       '(#:phases (modify-phases %standard-phases
> >                    (add-before 'build 'patch
> >             (lambda* (#:key inputs #:allow-other-keys)
> >               (let* ((libtermbox   (assoc-ref inputs "termbox")))
> >                 (substitute* "termbox.scm"
> >                   (("@LIBTERMBOX@")
> >                    (format #f "~a/lib/libtermbox.so" libtermbox)))
> >                 #t))))))
> >      (inputs
> >       `(("guile" ,guile-2.2)
> >         ("termbox" ,termbox-truecolor)))
> >      (propagated-inputs
> >       `(("guile-bytestructures" ,guile-bytestructures)))
> >      (synopsis "GNU Guile bindings for termbox")
> >      (description "GNU Guile bindings for termbox")
> >      (license license:lgpl3+)))
> >
> >
> https://git.sr.ht/~amz3/guix-amz3-channel/tree/master/amz3/termbox.scm#L40
> >
> > Hope This Helps,
> >
> >
> > Amirouche ~ amz3
>
>
>
>
>
>


reply via email to

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