A script to update/install the latest versions of all the most important Common Lisp packages.

About

clbuild is a shell script helping with the download, compilation, and invocation of Common Lisp applications. It defaults to SBCL but otherwise tries to be somewhat independent of your local environment.

clbuild was originally written by Luke Gorrie. (Idea from jhbuild by James Henstridge, a Gnome hacker).

Currently, the following libraries and applications are supported (2007-06-24):

beirc, bordeaux-threads, cffi, chunga, cl+ssl, cl-base64, cl-fad, cl-irc, cl-ppcre, cl-webdav, cl-who, climacs, climplayer, closer-mop, closure, clx, cxml, eclipse, flexi-streams, flexichain, graphic-forms, gsharp, hunchentoot, lw-compat, mcclim, md5, midi, puri, rfc2388, salza, skippy, slime, spatial-trees, split-sequence, tab-layout, trivial-gray-streams, trivial-sockets, url-rewrite, usocket, zip

Please send patches and bug reports to clbuild-devel@common-lisp.net (list information).

FAQ

Q  How does clbuild differ from asdf-install?

A  clbuild includes a list of selected libraries and applications and their well-known locations, and downloads the newest version or CVS/SVN/darcs repositories if possible. It can also build SBCL for you and includes convenient commands to start various applications.

In contrast, asdf-install can install any software listed on Cliki. It always downloads release tarballs. (It is up to the user to hunt down the trustworthy PGP keys as a protection agains malicous wiki entries.)

Q  My favourite application is not supported. How can I add it?
A  Just add it to clbuild/update.sh. Please send a note to the mailing list so that we can include it, too.

Q  Does it work on cygwin?
A  Yes, but you need to recompile SBCL with an ASDF patch for shortcut support first.

To starts clbuild's slime, make sure to use the Windows version of Emacs, not cygwin's Emacs.

Download and Usage

At this point, clbuild is maintained in darcs. There are several branches of clbuild, the most recent of which is probably David's:

$ darcs get http://www.lichteblau.com/blubba/clbuild

Other repositories are Christophe's tree at http://common-lisp.net/~crhodes/clbuild and Luke's original repository at http://fresh.homeunix.net/~luke/misc/repo/clbuild

You might want to make the shell script executable:

$ cd clbuild
clbuild$ chmod +x clbuild

Try the interactive dialog if you have dialog(1):

clbuild$ ./clbuild dialog

Without the dialog, use command line arguments:

clbuild depends on various helper applications. Try check to make sure they are installed:

clbuild$ ./clbuild check
Checking for helper applications...
found /usr/bin/X11/cvs
found /usr/bin/X11/svn
found /usr/bin/X11/darcs
found /usr/bin/X11/wget
found /bin/tar
found /bin/mktemp
Success: All helper applications found.

Checking Lisp startup...
Success: Lisp starts up using "sbcl"

Looking for installable systems...
0 systems definition files registered

If that worked, run update or build to download (and optionally also build) the userland:

clbuild$ ./clbuild update
cvs co flexichain...
cvs co mcclim...
... lots of output not shown ...
update complete                                                   
46 systems definition files registered

Use dumpcore update to create a core file containing all applications, accelerating application startup considerably.

clbuild$ ./clbuild dumpcore
... lots of output not shown ...
[undoing binding stack and other enclosing state... done]
[saving current Lisp image into /home/david/clbuild/monster.core:
writing 1664 bytes from the read-only space at 0x20000000
writing 5024 bytes from the static space at 0x20100000
writing 181661696 bytes from the dynamic space at 0x1000000000
done]
./clbuild ok
monster.core dumped

You can also download and recompile SBCL using buildsbcl or buildworld:

clbuild$ ./clbuild buildsbcl

For other options, see help:

clbuild$ ./clbuild help
Usage:
  check         check availability of all necessary helper applications

  update        download/update all applications
  recompile     recompile all applications
  dumpcore      recompile and dump a core file for faster startup
  build         update && dumpcore

  buildsbcl     download/update and compile SBCL
  world         buildsbcl && build

  clean         delete all compiled object files
  mrproper      delete all downloaded source and fasl files

  slime         run the Superior Lisp Interaction Mode in a fresh Emacs
  lisp          run Lisp in the terminal
  sbcl          alias for "lisp" (with all packages available to REQUIRE)
  openmcl       alias for "lisp"

  listener      run the McCLIM listener
  gsharp        run the Gsharp score editor 
  climacs       run the Climacs text editor
  closure       run the CLOSURE web browser
                (required Debian packages: gif2png,libjpeg-progs)
  beirc         run the Beirc IRC client
  climplayer    run the CLIMPlayer music player
                (required Debian packages: mplayer, fileschanged, fam)
  eclipse       run the eclipse window manager

  hunchentoot   run the Hunchentoot web server test
  webdav DIR    run the CL-WEBDAV server, serving directory DIR
                (required Debian packages: libssl-dev)

  dialog        show an interactive menu 

Default when started without arguments is 'dialog'.

If you do 'world' or 'buildsbcl' then SBCL will be installed in
target/ and used for future commands. If you don't run these commands
(or you remove target/) then clbuild uses the 'sbcl' in your PATH.

Set CCL to your OpenMCL binary to use OpenMCL instead of SBCL. 
Example: CCL=~/ccl/lx86cl64 ./clbuild build
(Not supported with targets 'buildsbcl' and 'sbcl'.)

Set CLIM_BACKEND=gtkairo to enable clim-gtkairo instead of clim-clx.
(Requires GTK+ >= 2.8.)