------------------------------------------------------------------------

To install a binary release:

   make install

Ideally, install rlwrap (http://utopia.knoware.nl/~hlub/rlwrap/) as
well. In Debian Linux, this is provided by the rlwrap package.

Binary releases are compiled with SBCL.

------------------------------------------------------------------------

To compile from source:

Compiling Shuffletron from source requires the following:

        SBCL (or CCL)
        CFFI
        Osicat (at least version 0.6.0)
        Mixalot (at least version 0.0.2)

Run 'make', then 'sudo make install'.

The default make target compiles the program using SBCL. If you prefer
CCL, type 'make shuffletron-ccl' or 'make shuffletron-ccl64' instead
(see "Support for Clozure Common Lisp" below).

------------------------------------------------------------------------

Issues with libmpg123 on 32-bit machines:

There are various thorny issues with recent versions of libmpg123
on 32-bit x86 machines. The binary releases of Shuffletron come with
appropriately compiled versions of the library which sidestep these
issues. If compiling from source, you have a few options:

  * Use an old version of the library (such as 1.4.3)
  * Use the libmixlaot-mpg123 from a binary release (you'll have to
    uncomment several lines in the Makefile to install it, when starting
    from a source tarball)
  * Compile (or recompile) mpg123 with the correct settings.

When compiling mpg123, you will at a minimum have to configure it
with the --disable-largefile flag. If you encounter errors, adding
--disable-aligncheck with a CFLAGS= -mstackrealign *should* fix it
(I'm not 100% certain, because I hacked my SBCL to work around the
issue, and don't use 32-bit Linux heavily anyway).

As of mpg123-1.8.1, there's a nasty UTF-16 decoding bug in its ID3 
parser that will crash the player on certain files. The version of the
library included in the binary releases (libmixalot-mpg123) include a
patch fixing this issue. This patch is included as id3-utf16.diff.

------------------------------------------------------------------------

Support for Clozure Common Lisp:

Due to a bug in CCL version 1.3 converning save-application, binaries
compiled with this version of CCL will not work. Shuffletron can
instead be used with this version of CCL by invoking lisp as follows:

  ccl -n -l load-ccl.lisp
or
  ccl64 -n -l load-ccl.lisp

In SVN versions of CCL later than 04/29/09, binaries compiled with the
shuffletron-ccl and shuffletron-ccl64 make targets should work perfectly.  
Note that the "shuffletron" wrapper script and the install target still
assume the binary is named "shuffletron-bin". In order to install a
version built with CCL, you'll have to rename the compiled executable to
"shuffletron-bin".

------------------------------------------------------------------------