PawPaw is a Cross-Platform build scripts setup for static libraries and audio plugins
It was created out of the need of many open-source developers to easily build their stuff for macOS and Windows,
where usually dependencies are involved which need to be built manually.
In order to make audio plugins self-contained, these dependencies/libraries need to be built statically,
which most packaging projects do not do.
Also, most open-source audio plugin projects do not have binaries for macOS or Windows,
making it very difficult for users in these platforms to enjoy them.
This project was created as a way to do automated macOS and Windows builds of such projects and libraries,
so we can finally have a good collection of LV2 plugins on these system.
The same automated setup can then be re-used/extended to support other projects and applications.
PawPaw has the following goals:
- Single script to build most common plugin dependencies statically, both natively and cross-compiling
- Clean and simple code, easy to maintain and add new libraries to build
- Statically build LV2 plugins for (at least) macOS and Windows
- Define each plugin project in its own file, to make it easy to support new plugins via pull-request
- Package the entire collection as an installer
Additionally, PawPaw is used to build library dependencies for Cardinal, Carla, JACK2 and mod-app.
Proper documentation on how to setup PawPaw for your own project will come at a later date.
But roughly all that is needed is something like:
# change dir to PawPaw root folder
cd /path/to/PawPaw
# build plugin dependencies for win64 target (only needed once)
./bootstrap-plugins.sh win64
# set up environment variables for win64 builds with PawPaw static libs
source local.env win64
# change dir to your own project
cd /path/to/my/project
# build as usual
make # or whatever other build system applies
Based on Sonoma 14.2.1 running on an M1 based MacBook, the following are needed:
- Xcode command line tools https://mac.install.guide/commandlinetools/about-xcode-clt.html
As well as:
- autoconf
- automake
- cmake
- coreutils
- gawk
- gnu-sed
- jq
- make
- meson
A great way of installing these is using Homebrew "The Missing Package Manager for macOS". You can install Homebrew by visiting https://brew.sh/
The brew command to install the dependencies listed above is:
brew install autoconf automake cmake coreutils gawk git gnu-sed jq make meson