Giter Club home page Giter Club logo

zyn-fusion-build's Introduction

Zyn-Fusion Build Scripts

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.


Fetch repositories

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

How to 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.

Building for Linux (native build)

Generic

# 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.

Building for Windows (cross-compile on Linux)

# 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

Building for Windows (native build via Msys2)

Msys2 installation

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`.

Bootstrapping

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

Compile ZynFusion

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

Moreover

  • Build types (modes): You can choose either demo or release, and demo 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

zyn-fusion-build's People

Contributors

fundamental avatar anclark avatar gopall avatar pgervais avatar matheusrich avatar schmitty2005 avatar cyberchrime avatar jistr avatar d4mr avatar ctag-fh-kiel avatar someone65 avatar marahmbawwab avatar dan-giddins avatar therma avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.