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 OR clang >= 10.0.1
- gcc-c++ >= 4.7 OR clang-c++ >= 10.0.1
- libgcc_s1 >= 5.2
- libstdc++-devel >= 4.7
- jack-devel >= 1.9.5
- lv2-devel >= 1.10
- ladspa-devel >= 1.13
- libsndfile-devel >= 1.0.25
- libcairo-devel >= 1.14
- php >= 5.5.14
- 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

Several DEs like GNOME don't support XDG format, so desktop icon installations are available as a separate build task:

    make install_xdg

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

To build both release binaries and binaries for testing, use the following commands:

    make clean
    make all test

After issuing this command, the system will build release binaries into '.build' subdirectory and test binaries into '.test' subdirectory

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