Linux Studio Plugins Project

# Building

You may build plugins from scratch.

For successful build you need the following packages to be installed:

- gcc >= 4.7
- gcc-c++ >= 4.7
- libgcc_s1 >= 5.2
- libstdc++-devel >= 4.7
- jack-devel >= 1.9.5
- lv2-devel >= 1.10
- ladspa-devel >= 1.13
- libexpat-devel >= 2.1
- libsndfile-devel >= 1.0.25
- libcairo-devel >= 1.14
- php >= 5.5.14

For development, additional packages are required to be installed:

- glu-devel >= 9.0.0
- libGL-devel >= 11.2.2

Currently there is no automake/CMake supported, so to build plugins you have to type:

    make clean
    make
    make install

By default, all supported formats of plugins are built. You may control list of built plugin formats by specifying BUILD_MODULES variable:

    make clean
    make BUILD_MODULES='lv2 vst doc'
    make install

Available modules are:

- ladspa - LADSPA plugin binaries
- lv2 - LV2 plugin binaries
- vst - LinuxVST plugin binaries
- jack - JACK plugin binaries
- doc - HTML documentation

Also possible (but not recommended) to specify compile targets:

    make clean
    make build_ladspa
    make build_lv2
    make build_vst
    make build_jack
    make build_doc

By default plugins use '/usr/local' path as installation directory. To override this path, you can run build with specifying PREFIX variable:

    make clean
    make PREFIX=/usr
    make install

By default, 'make install' will install all plugin formats (LADSPA, LV2, LinuxVST, JACK) and documentation. To install them separately, you can issue following commands:

    make clean
    make
    make install_ladspa
    make install_lv2
    make install_vst
    make install_jack
    make install_doc

To build binaries for debugging/profiling, use the following commands:

    make clean
    make profile

To build binaries for testing (developers only), use the following commands:

    make clean
    make test

You may also specify the installation root by specifying DESTDIR attribute:

    make install DESTDIR=<installation-root>

To perform cross-building between different architectures, you first should have a corresponding toolchain. By default, LSP plugins use 'uname' tool for detecting target architecture and set internal variable BUILD_PROFILE to the detected value. Currently supported values are 'x86_64', 'i586', 'armv7a'. To build plugins for another architecture, just issue following commands:

    make clean
    make BUILD_PROFILE=<target architecture>

To automatically build tarballs with binaries, you may use 'release' target:

    make clean
    make release

After issuing these commands, '.release' subdirectory will contain tarballs with binaries, documentation and sources. To perform release for another architecture, same way with BUILD_PROFILE is possible:

    make clean
    make BUILD_PROFILE=<target architecture> release

To remove all previsously built tarballs, just issue:

    make unrelease