orange / INSTALL.txt

== Building From Source ==

=== Prerequisites ===

1. C++ tool-chain. Supported compilers are gcc (g++) for Linux and Mac OS X and Microsoft Visual
C++ on Windows (MinGW is not supported at this time). Clang also works for MAC OS.

* On Windows install the free [ Visual Studio Express]
* On Linux use the distribution package management tools 
* On Mac OSX install the [ XCode developer tools]

You will also need python and numpy development header files. They are included in python
and numpy installation on Windows and Mac OSX, but are in separate packages on Linux,
for instance 'python-dev' and python-numpy-dev' on Debian derived distributions.

=== Obtaining source ===


* Download the latest nightly packed sources archive and unpack it.

* Clone the Mercurial repository:

	hg clone

== Build and Install==

=== With (suggested) ===

The easiest way to build Orange from source is to use the in the root
Orange directory (requires administrative privileges). Just run:

python build
python install 

Alternatively, you could install Orange into the user specific site-packages 
You will need to add the install dir to PYTHONSITEPACKAGES environment variable 
(because Python needs to process Orange's .pth file)

To install in development mode (
run the following command instead of "python install":

    python develop

=== Using make ===

This is only useful to developers of the C++ part (this can only build the extensions
in-place and does not support an install command).

First change the working directory to the 'source' sub-directory then run make:

cd source

this will build the orange core extensions in the root directory (i.e. the one you started in).
Useful environment variables:

 * PYTHON - names the python executable for which Orange is being build.
 * CXXFLAGS - flags to pass to C++ compiler
 * CFLAGS - flags to pass to C compiler
 * LDFLAGS - flags to pass to the linker
 * EXCLUDE_ORANGEQT - if set to any value will cause orangeqt to not be build 

See source/orangeqt/README.txt for building orangeqt alone.

== Linking to external libraries  ==

The Orange source includes some third party libraries that are statically linked 
into Orange by default:

 * BLAS (a subset)
 * LIBSVM (v3.2 - v3.* is required)
 * LIBLINEAR (v1.8)
 * QHull

To customize the build process to link to the corresponding external library instead, try. 

* For the method modify the setup-site.cfg file.

* For make, pass the library names on the command line or through environment variables (listed
in source/Makefile). Example:

make BLAS_LIB=atlas