unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: Tristan Colgate-McFarlane <tcolgate@gmail.com>
To: "Diogo F.S.Ramos" <diogofsr@gmail.com>
Cc: guile-user@gnu.org
Subject: Re: Installing scheme only programs
Date: Thu, 10 Mar 2011 09:57:56 +0000	[thread overview]
Message-ID: <1299751076.3717.591.camel@gbgh-dsk-01148.sig.ads> (raw)
In-Reply-To: <20110310.035029.58396821684886596.diogofsr@gmail.com>

I use the following trick to get things into the guile site directory
(and still pass a make distcheck).

In configure.ac
GUILE_PROGS
GUILE_FLAGS
GUILE_SITE_DIR

GUILE_PREFIX=`$GUILE_CONFIG info prefix`
AC_SUBST(GUILE_PREFIX)

In src/Makefile.am:
SUFFIXES = .scm .go
.scm.go:
        $(top_srcdir)/build-environ $(GUILE_COMPILE) -o "$@" "$<"

guilesite = @GUILE_SITE@
guileprefix = @GUILE_PREFIX@
guilesitesuffix = `echo $(guilesite) | sed -e 's!^$(guileprefix)!!'`
guilesnmpdir =  $(exec_prefix)/$(guilesitesuffix)/snmp
guilesnmp_DATA = $(SCHEMESOURCES) $(GOBJECTS)

On Thu, 2011-03-10 at 03:50 -0300, Diogo F.S.Ramos wrote: 
> I have a program written entirely in guile's scheme and I use
> autotools to distribute it.
> 
> Is there a guide to distribute guile programs?
> 
> I know that some languages have, but I can see any in the guile docs.
> 
> My biggest concern is about the .scm files that makes up my program.
> 
> For those who know autotools, I'm using pkgdata to install the files
> and them I use (load "/path/to/.scm") from a simple executable
> script. But it got me thinking that the .scm files are not exactly
> data.
> 
> I was thinking that the 'module' facility of guile could be the
> solution. I install them where guile's modules are installed and use
> (use-modules) to load. But then again, my .scm are not exactly modules
> because they are not, in any way, made for general purpose use.
> 
> I recently learn a technique where, during 'make', one 'cat' all the
> sources files together, forming a big, single executable script. Doing
> so, there is no need to install the .scm files, because they are all
> inside the same executable file.
> 
> This technique needs a little care, but is definitely doable, as I did
> a scratch of it and it works, although I felt that the bigger file
> made my application take a little more time to start than separate
> loaded files. I didn't do any benchmark, so don't take my word on it.
> 
> So, what do you guys think?
> 
> Is there a proper way to distribute and install scheme only programs?
> 





  reply	other threads:[~2011-03-10  9:57 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-10  6:50 Installing scheme only programs Diogo F. S. Ramos
2011-03-10  9:57 ` Tristan Colgate-McFarlane [this message]
2011-03-10 17:42   ` Diogo F. S. Ramos
2011-03-10 10:34 ` Thien-Thi Nguyen
2011-03-10 17:46   ` Diogo F. S. Ramos
2011-03-11  2:18     ` nalaginrut
2011-03-11  4:50       ` dsmich
2011-03-11  4:57         ` Diogo F. S. Ramos
2011-03-11  5:24           ` nalaginrut
2011-03-11  9:16     ` Thien-Thi Nguyen
2011-03-11 12:53   ` Ludovic Courtès
2011-03-13  0:59     ` Thien-Thi Nguyen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1299751076.3717.591.camel@gbgh-dsk-01148.sig.ads \
    --to=tcolgate@gmail.com \
    --cc=diogofsr@gmail.com \
    --cc=guile-user@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).