This repository contains the toolchain and libraries used in MOD Devices.
It allows developers to locally build plugins for MOD Duo and also prepare for Cloud builds.
Currently this builder only supports Linux hosts.
If you're not running Linux see this HowTo.
There are several dependencies:
- gcc & g++
- git
- subversion
- hg/mercurial
- autoconf
- automake
- bzip2
- lzma
- binutils
- libtool
- ncurses
- rsync
- wget
- bc
- bison
- flex
- help2man
- gawk
- gperf
- texinfo
If you're running a debian based system you can install all dependencies by running:
sudo apt-get install acl bc curl cvs git mercurial rsync subversion wget \
bison bzip2 flex gawk gperf gzip help2man nano perl patch tar texinfo unzip \
automake binutils build-essential cpio libtool libncurses-dev pkg-config libtool-bin
Note that libtool-bin is not available on old distros.
If that is the case for you, simply skip that package but install everything else.
To begin simply run the bootstrap.sh script with either modduo or modduox as argument.
The bootstrap.sh script will build the toolchain (ct-ng) and buildroot.
Depending on your machine it can take more than 1 hour.
All files will be installed in ~/mod-workdir
.
Set the 'WORKDIR' environment variable before bootstraping if you wish to change that.
After the bootstrap process is complete, you can start building plugins.
See the 'plugins/package' folder in this repository for some examples.
To build a plugin, run:
./build <platform> <plugin-package>
Where platform
is either modduo or modduox, and plugin-package
is a folder inside the plugins/package
directory.
If everything goes well, you will have the final plugin bundle in ~/workdir/<platform>/plugins
.
You can use MOD-SDK's 'publish' tab to push those into a MOD Duo.
Or if you feel like doing it manually, you can run something like:
cd /path/to/workdir/plugins # adjust as needed
tar czf bundle1.lv2 bundle2.lv2 | base64 | curl -F 'package=@-' http://192.168.51.1/sdk/install; echo
NOTE: If you want to build the provided plugins in this repository you'll need to enable git submodules, like this:
git submodule init
git submodule update
To cleanup the build of a plugin, run:
./build <platform> <plugin-package>-dirclean
There's a more detailed HowTo explaining how to compile an LV2 Plugin using mod-plugin-builder.
The Camomile integration is under testing phase. Check the PR notes for more details.