Composite - Live performance sequencing, sampling, and looping

BUILDING AND INSTALLING COMPOSITE
================================

Contents:

1. System Requirements
2. Download
3. Binary Packages
4. Prerequisites to Build from Source
5. Build and Install from Source (Simple)
6. Build and Install from Source (Detailed Configuration)
7. INSTALL.txt Changelog

1. System Requirements
----------------------

Composite is supported on the following operating systems:

  * Linux/Unix/BSD
  * Mac OS X

Composite is not yet supported on Windows because there are currently
no Windows developers on the project... and so the Windows components
have fallen into disrepair.(**)

Composite is known to work well on fairly old systems like this (as of
2009):

  Pentium III 500 MHz
  198 MB RAM
  Consumer-Grade (cheap) audio card
  Keyboard and Mouse
  1x1 USB MIDI Interface (optional)

(**) - However, Gabriel recently acquired a couple Windows PC's,
       so Windows support is coming.  But it's not a priority
       at the moment... since the LV2 plugin is the priority.

2. Download
-----------

Composite can be downloaded as a binary package, source distribution,
or you can check out the current development version with Subversion.
These can be accessed on the Composite home page:

	http://gabe.is-a-geek.org/composite/

The source code for the current development version can be checked out
via Git:

	$ git clone git://gitorious.org/composite/composite.git

3. Binary Packages
------------------

GNU/Linux:

	Check your package management system for the package
	'composite.'  At this time there are no known distros
	that have a package for Composite.

Mac OS X:

	There are currently no Composite devs on OS X, so
	neither are there any binary packages.

4. Prerequisites to Build from Source
-------------------------------------

In order to build from source, you will need the following libraries
installed on your system, and the development header files.

	REQUIRED
	* Qt 4 Library (>=4.5.0, 4.3.x might work, 4.2.x won't)
	* Qt 4 SDK (moc, uic, etc.)
	* GNU g++ compiler (>=4.0, 3.x might work)
	* CMake (>= 2.6, earlier might work)
	* JACK (jack1 >= 0.109.0, jack2 >= 1.9.3, earlier ones may
          work on some systems)
	* libsndfile >=1.0.17
	* zlib and libtar -OR- libarchive
	  Linux: You probably already have zlib and libtar.
	  OS X: You will probably need to build libarchive from source.
	  Windows: You will probably want to use libarchive.
	* OS X: Xcode
	* libFLAC for handling FLAC sound files.
        * The boost libraries and the boost unit test framework.

	OPTIONAL SUPPORT
	* liblrdf for LADSPA plugins

On a single, 800MHz processor Composite takes about 37 min. to build.
On a dual-core, 64-bit, 2800MHz processor with gobs of memory it takes
about 2 min. to do a parallel build.

(**) These tests check that Tritium works correctly on your machine,
     and with any changes the developers have added.

5. Build and Install from Source (Simple)
-----------------------------------------

After you have all the prerequisites, building and installing will
look like this:

	$ tar xjf composite-0.006.1.tar.bz2
	$ cd composite-0.006.1
        $ mkdir build
	$ cd build
	$ cmake .. \
		-DCMAKE_BUILD_TYPE=Debug \
		-DCMAKE_INSTALL_PREFIX=/usr/local \
		-DWANT_LRDF=ON
	$ make
        $ sudo make install

     +---------------------------------------------------+
     | NOTICE:  BUILDING WITH 'cmake .' IS NOT SUPPORTED |
     +---------------------------------------------------+

On GNU/Linux and other unix-like systems, you'll also need to run:

        $ sudo ldconfig

To change the directory where Composite is installed, it is done like
this on the last step:

	$ sudo make install DESTDIR=/mnt/chroot

THERE IS NO UNINSTALL. USE A PACKAGE MANAGER.

Composite uses a tool that detects the correct Qt settings.  Please
make sure that qmake for Qt4 is in your path... and all will be well.

___CREATING A BINARY PACKAGE___

If you are a package maintainer and wish for your packaging scripts to
be included in the Composite source tree, we would be happy to work
with you.  Please contact the developer mailing list (see the Composite
home page).  The instructions below are for the package systems that
have been contributed so far.

___CREATING A .DEB PACKAGE___

In order to create a .deb package for Debian or Debian-based systems
(like Ubuntu), you first need the debhelper package:

	# apt-get install debhelper

To build the Composite package:

	$ tar xjf composite-0.006.1.tar
	$ cd composite-0.006.1
	$ cd linux
	$ fakeroot dpkg-buildpackage

This will place the .deb package and description files in the parent
directory.  If you wish to change the version number for the archive,
edit linux/debian/changelog to set the version.

6. Build and Install from Source (Detailed Configuration)
---------------------------------------------------------

Unfortunately, CMake doesn't have something that works exactly like
'./configure --help' that will show you all the configuration
options.  The best way to see the standard options is to run:

	$ ccmake /path/to/sources/composite-0.006.1

Which will give you a listing of the options from the CMakeLists.txt
file.  You have the following commands (and more) available:

	h - get help on the current field/option
	c - Reconfigure
	g - Generate makefiles
	t - Toggle advanced mode so that you can set
            -funroll-loops -fomit-frame-pointer

The following information is for your convenience, and is bound to go
out-of date as things change:

  DEBUG BUILDS -- Either `cmake -DCMAKE_BUILD_TYPE=Debug /path/to/srcs`
                  or     `cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo /path/to/srcs`

  LIBARCHIVE -- `cmake -DWANT_LIBARCHIVE=ON /path/to/srcs`

  LRDF -- `cmake -DWANT_LRDF=ON /path/to/srcs`

  PREFIX -- `cmake -DCMAKE_INSTALL_PREFIX=/usr/local /path/to/srcs`

  DESTDIR -- With GNU Makefiles, `make install DESTDIR=/mnt/chroot`

7. INSTALL.txt Changelog
------------------------

2011-06-14 Gabriel M. Beddingfield <gabrbedd@gmail.com>
        *  Update all versions to 0.006.1

2010-03-14 Gabriel M. Beddingfield <gabriel@teuton.org>
	* Add 'ldconfig' step after install.
	* Fix error in cmake line, and expand.
	* Add boost as a required lib.
	* Update all the versions to 0.006.

2009-11-21 Gabriel M. Beddingfield <gabriel@teuton.org>
	* Add Detailed build and install instructions.

2009-11-19 Gabriel M. Beddingfield <gabriel@teuton.org>
	* Convert build system from scons to CMake.

2009-11-15 Gabriel M. Beddingfield <gabriel@teuton.org>
        * Rebrand from Hydrogen to Composite

2009-04-08 Gabriel M. Beddingfield <gabriel@teuton.org>
	* Create INSTALL.txt
