= Aldrin Build Instructions =

== Linux Build Instructions ==

=== Configuring and Building ===

First make sure you have these libraries and tools installed:

 * [http://www.python.org/ python 2.4]
 * [http://www.wxpython.org/ wxPython 2.6]
 * [http://www.mega-nerd.com/libsndfile/ libsndfile]
 * [http://starship.python.net/crew/theller/ctypes/ ctypes] for Python 2.4
 * [http://www.scons.org/ SCons]
 * [http://subversion.tigris.org/ Subversion]
 * [http://gcc.gnu.org/ gcc/g++]
 * [http://www.ladspa.org/ LADSPA SDK]
 * [http://jackaudio.org/ libjack]
 * [http://www.alsa-project.org/ libalsa]
 * [http://www.zlib.net/ zlib]
 * [http://flac.sourceforge.net/ FLAC]

For Debian/Ubuntu, you're going to need following packages:

{{{
sudo apt-get install build-essential python2.4 python-wxgtk2.6\
 libsndfile1 libsndfile1-dev scons ladspa-sdk python-ctypes libasound2-dev libjack0.100.0-dev\
 zlib1g zlib1g-dev libflac7 libflac-dev
}}}

Now build the entire zzub tree:

{{{
# scons PREFIX=/usr/local
...
scons: done building targets.
#
}}}

If that worked, install aldrin and update the dynamic library loader cache. Make sure that '''/usr/local/lib''' is mentioned in '''/etc/ld.so.conf''':

{{{
# sudo scons install
...
scons: done building targets.
# sudo ldconfig
#
}}}

To uninstall and clean the zzub tree later on, try:

{{{
# sudo scons -c install
...
scons: done cleaning targets.
# 
}}}

You should uninstall and clean the tree whenever you are going to upgrade the repository.

=== Testing ===

Now you're ready to run aldrin:

{{{
[paniq@aspera zzub]$ aldrin
enumerating /usr/local/lib/zzub/libMatilde Tracker.so
loading machine '/usr/local/lib/zzub/libMatilde Tracker.so'
...
}}}

Try loading share/aldrin/demosongs/test.bmx for a sound test. You should hear some junglist massive.

=== Troubleshooting ===

 * Q: I get a Segmentation Fault when I start aldrin with jack enabled.
 * A: current svn (2006-10-04) has a broken Jack. Try applying [http://www.portaudio.com/trac/ticket/24 this patch] to the portaudio source tree.

== Windows Build Instructions ==

''Thanks to Pieter Holtzhausen for working out the instructions.''

=== Configuring and Building ===

First make sure you have these libraries and tools installed:

 * [http://www.python.org/ python] (2.4 or 2.5)
 * [http://www.wxpython.org/ wxPython 2.6] (for either Python 2.4 or Python 2.5)
 * [http://starship.python.net/crew/theller/ctypes/ ctypes] (only for Python 2.4)
 * [http://www.scons.org/ SCons]
 * [http://subversion.tigris.org/ Subversion]
 * [http://prdownloads.sf.net/mingw/MinGW-5.0.2.exe?download MinGW] (gcc/g++) or [http://msdn.microsoft.com/vstudio/express/visualc/ Visual C++ 2005 Express Edition] and the [http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/ Platform SDK]
 * [http://www.steinberg.net/567+M52087573ab0.html Steinberg ASIO SDK 2]

At the moment, to get ASIO support, you need Visual C++ installed. Building with MinGW is untested, but we'd love to hear about your results.

Download the Steinberg ASIO SDK 2 and extract it into the zzub src directory, so that its content is in ./src/ASIOSDK2.

Start up the Visual C++ Command prompt and build the project:

{{{
C:\> cd zzub
C:\zzub> scons PREFIX= DESTDIR=c:\aldrin_build
}}}

When everything is alright, you can either run Aldrin directly from this directory running aldrin.bat, or you can install a fresh copy into the directory you passed in DESTDIR, ready for deployment:

{{{
C:\zzub> scons install
}}}

Of course you can substitute this path with something else.

=== Testing ===

Before you can run Aldrin, you need to make sure that Python is in your PATH. You can set this system wide, by opening '''My Computer''' -> '''Properties''' -> '''Advanced''' -> '''Environment Variables''', selecting the '''PATH''' line in the '''System variables''' box, and appending your local Python path (e.g. ;C:\Python25). You can check out if this works, by opening '''Start''' -> '''Run...''' and entering '''python'''. You should see a Terminal Window.

When Python works, go to your zzub folder and run aldrin.bat.

== OS X Build Instructions ==

No build instructions yet.
