This directory contains sources of "spigot" extension module,
as an example of Gauche extension.

This extension isn't built by default.  You can build it
_after installing Gauche_.  See below.

The sources include:

  DIST           - a helper script to create a distribution tarball.
  configure.in   - source of "configure" script
  Makefile.in    - template makefile
  spigot.h       - common declaration within the spigot module
  spigot.c       - main logic 
  spigotlib.stub - a "stub" file to generate Scheme-C glue
  spigot.scm     - Scheme part of the module
  test.scm       - unit test

This is a typical construction of a simple extension.  Note that
you can generate the skeletons of these files automatically,
by "gauche-package" script:

  % gauche-package generate spigot

It is a good way to start writing a fresh extension; but now
we already have the sources, so let's move on.

As a developer, you have to start from generating "configure"
script by autoconf.   You need autoconf version 2.54 or later.
This command creates "configure" from configure.in.

  % ./DIST gen

It actually just calls autoconf.  (Note: in Gauche 0.8.5 or
before, you needed to give an option to autoconf so that it
understands Gauche-specific macros.  Now the standard configure.in
does not contain any Gauche-specific macros, so you don't need
the option anymore.)

Once configure is generated, you can create Makefile by
running configure script.

  % ./configure

The configure script automatically finds installed Gauche,
and picks the right options to compile and link.
Now, 'make' builds the extension, 'make check' runs
the test, and 'make install' installs the extension
in the Gauche's standard location.

  % make
  % make check
  % make install

To create a distributable package, use DIST script:

  % ./DIST tgz

It creates a tarball "spigot-1.0.tgz" in the parent directory.


