PowerAudio fork of Zyn-Fusion
This fork of Zyn-Fusion’s build scripts includes the following changes:
- The installation destination on GNU/Linux is customizable and defaults to /usr/local.
- The top-level
make
can be invoked with-j
; e.g.,make -j20 -f Makefile.linux.mk
works without the need for thePARALLEL
variable. - ZynAddSubFX and Zest are included as submodules rather than being fetched by the build scripts.
- Fixed installation of Bash completions.
- Tests in ZynAddSubFX are not compiled; this fixes linker errors/warnings with LTO.
All changes in this fork are released to the public domain using CC0, or (at your option) licensed under the same license as the original repository (see COPYING).
These are the build scripts used to generate the Zyn-Fusion packages.
These build scripts (and only these build scripts) are licensed under the WTFPL.
You need to fetch this repo first (if you're using Windows, see below for how to do it).
git clone https://github.com/zynaddsubfx/zyn-fusion-build zyn-fusion-build
cd zyn-fusion-build
Zyn-Fusion now uses Makefile. Each platform has a corresponding Makefile (Makefile.<platform>.mk
):
Makefile | Target platform (Where Zyn runs) | Host platform (where compilers run) |
---|---|---|
Makefile.linux.mk |
Linux (native build) | Linux |
Makefile.windows.mk |
Windows | Linux (cross compile) |
Makefile.mingw64.mk |
Windows | Msys2 Mingw-w64 64 bit |
Since they are not in the default Makefile name, you need to explicitly specify them via parameter-f
when invoking make
.
Makefiles will automatically download ZynAddSubFX and Zest, as well as their dependencies. Then, automatically build them altogether.
Built packages are put in directory ./build/
:
./build/zyn-fusion
: Ready-to-use Zyn-Fusion files. You can directly use them as you wish, or copy this folder into your DAW's search-path../build/zyn-fusion/zyn-fusion-*.{tar.gz|zip}
: Compressed package(s) ready for distribution.
# Install build dependencies
make -f Makefile.linux.mk install_deps
# Start building
PARALLEL=1 make -f Makefile.linux.mk all
# Or, you can also build a specific component,
# then finally use `package` to get a package file
PARALLEL=1 make -f Makefile.linux.mk zynaddsubfx
PARALLEL=1 make -f Makefile.linux.mk zest
make -f Makefile.linux.mk package
NOTICE: You need to run
install-linux.sh
within the built folder to install Zyn-Fusion properly, or it won't run, moreover you'll only see a black window in your host.
# Install build dependencies
make -f Makefile.windows.mk install_deps
# Start building
PARALLEL=1 make -f Makefile.windows.mk all
# Or, you can also build a specific component,
# then finally use `package` to get a package file
PARALLEL=1 make -f Makefile.windows.mk zynaddsubfx
PARALLEL=1 make -f Makefile.windows.mk zest
PARALLEL=1 make -f Makefile.windows.mk package
You must install Msys2 first.
Remember to always use the Mingw64
terminal (you can find it in Start Menu).
Any other terminal will not work.
Then finish updating the Msys installation by running in the
Mingw64 terminal: pacman -Suy
(twice).
See https://www.msys2.org/docs/updating/ for details and https://archlinux.org/pacman/pacman.8.html for ̀pacman`.
Checking out the code:
pacman -S git make
git clone https://github.com/zynaddsubfx/zyn-fusion-build zyn-fusion-build
cd zyn-fusion-build
Then install the required tools through pacman:
make -f Makefile.mingw64.mk install_deps
To compile everything:
make -f Makefile.mingw64.mk all
Alternatively you can also build a specific component, then finally use package
to get a package file:
make -f Makefile.mingw64.mk zynaddsubfx
make -f Makefile.mingw64.mk zest
make -f Makefile.mingw64.mk package
-
Build types (modes): You can choose either
demo
orrelease
, anddemo
is the default. Demo build will automatically mute after 10 minutes.You can explicitly specify build type:
make MODE=release -f Makefile.<platform>.mk <target>
-
Get help: You can get a list of
make
targets by invoking:make -f Makefile.<platform>.mk help