pax_global_header 0000666 0000000 0000000 00000000064 13644756202 0014523 g ustar 00root root 0000000 0000000 52 comment=0657978769355f0238545c2db6f3eae5b6479dce
Carla-2.1/ 0000775 0000000 0000000 00000000000 13644756202 0012407 5 ustar 00root root 0000000 0000000 Carla-2.1/.gitignore 0000664 0000000 0000000 00000005440 13644756202 0014402 0 ustar 00root root 0000000 0000000 # Hidden files
.directory
.fuse-*
.*.kate-swp
.libmagic-tmp
.libmagic-tmp.bc
.kdev_include_paths
.kdev4/
.DS_Store
# Temp files
*~
*.bak
*.swp
*.swo
# Binary files
*.7z
*.bz2
*.a
*.o
*.dll
*.dll.def
*.dylib
*.exe
*.msi
*.so
*.vst
*.vst3
# Binary dir
bin/ansi-pedantic-test_*
bin/carla
bin/carla.lv2/carla-bridge-*
bin/carla-database
bin/carla-settings
bin/jack/
bin/resources/
bin/styles/
build/
# Project files
*.carxp
*.carxs
*.pro.user
# C++ files
*.moc
moc_*.cpp
ui_*.h
resources.*.cpp
qrc_resources.cpp
# Python files
*.pyc
# Qt files
*_rc.cpp
*_rc.py
ui_*.hpp
ui_*.py
# Misc files
*.aria2
*.deb
*.gz
*.meta4
*.tar
*.ttl
*.xz
*.zip
# Binaries
carla-bridge-qtcreator
carla-bridge-arm32
carla-bridge-native
carla-bridge-posix32
carla-bridge-posix64
carla-bridge-lv2-cocoa
carla-bridge-lv2-external
carla-bridge-lv2-gtk2
carla-bridge-lv2-gtk3
carla-bridge-lv2-qt4
carla-bridge-lv2-qt5
carla-bridge-lv2-x11
carla-bridge-vst2-carbon
carla-bridge-vst2-cocoa
carla-bridge-vst2-x11
carla-discovery-qtcreator
carla-discovery-native
carla-discovery-arm32
carla-discovery-posix32
carla-discovery-posix64
carla-lv2-export
carla-native-plugin
carla-rest-server
zynaddsubfx-ui
stoat-output.png
source/tests/ansi-pedantic-test_*
source/tests/CachedPlugins
source/tests/CarlaRingBuffer
source/tests/CarlaPipeUtils
source/tests/CarlaString
source/tests/CarlaUtils1
source/tests/CarlaUtils2
source/tests/CarlaUtils3
source/tests/CarlaUtils4
source/tests/Exceptions
source/tests/Print
source/tests/RDF
source/tests/EngineEvents
source/tests/PipeServer
source/tests/RtLinkedList
source/tests/RtLinkedListGnu
# Docs
doc/CarlaBackend/
doc/CarlaBridge/
doc/DISTRHO/
# CX-Freeze builds
source/dist/
# QtCreator builds
*build-*Debug/
*build-*Release/
# python files in plugin resources dir
bin/resources/*.py
bin/resources/patchcanvas
bin/resources/widgets
source/native-plugins/resources/*.py
# Other
source/frontend/carla_config.py
source/includes/asio/
source/includes/rewire/
source/includes/vst2
source/includes/vst3
source/includes/config.h
source/modules/dgl/src/Resources.cpp
source/modules/dgl/src/Resources.hpp
source/modules/dgl/src/resources/
source/modules/dgl/src/sofd/
source/modules/distrho/src/DistrhoPluginJack.cpp
source/modules/distrho/src/DistrhoPluginLADSPA+DSSI.cpp
source/modules/distrho/src/DistrhoPluginLV2.cpp
source/modules/distrho/src/DistrhoPluginLV2export.cpp
source/modules/distrho/src/DistrhoPluginVST.cpp
source/modules/distrho/src/DistrhoUIDSSI.cpp
source/modules/distrho/src/DistrhoUILV2.cpp
data/linux/*.gz
data/linux/*.tgz
data/linux/*.xz
data/linux/*.*/
data/macos/*.gz
data/macos/*.tgz
data/macos/*-svn/
data/macos/*.*/
data/macos/Carla/
data/windows/Carla
data/windows/CarlaControl
data/windows/Carla-*-win32/
data/windows/Carla-*-win64/
data/windows/Carla.lv2/
data/windows/Carla_*
data/windows/python/
Carla-2.1/.gitmodules 0000664 0000000 0000000 00000000203 13644756202 0014557 0 ustar 00root root 0000000 0000000 [submodule "source/native-plugins/external"]
path = source/native-plugins/external
url = https://github.com/falkTX/Carla-Plugins
Carla-2.1/.travis.yml 0000664 0000000 0000000 00000002036 13644756202 0014521 0 ustar 00root root 0000000 0000000 language:
- cpp
sudo: required
dist: trusty
matrix:
include:
# linux with default, builds native and bridges
- os: linux
compiler: gcc
env:
- TARGET="linux"
# linux with macOS cross-compilation
- os: linux
compiler: gcc
env:
- TARGET="macos"
# linux with win32 cross-compilation
- os: linux
compiler: gcc
env:
- TARGET="win32"
# linux with win64 cross-compilation
- os: linux
compiler: gcc
env:
- TARGET="win64"
# linux with gcc 8, strict build
- os: linux
compiler: gcc
env:
- TARGET="linux-strict"
# linux with gcc 8, strict build, using juce
- os: linux
compiler: gcc
env:
- TARGET="linux-juce-strict"
before_install:
- sh ${TRAVIS_BUILD_DIR}/.travis/before_install.sh
install:
- sh ${TRAVIS_BUILD_DIR}/.travis/install.sh
script:
- sh ${TRAVIS_BUILD_DIR}/.travis/script-${TARGET}.sh
notifications:
email: false
irc: "ircs://chat.freenode.net:7070/#kxstudio"
Carla-2.1/.travis/ 0000775 0000000 0000000 00000000000 13644756202 0013775 5 ustar 00root root 0000000 0000000 Carla-2.1/.travis/before_install.sh 0000664 0000000 0000000 00000000640 13644756202 0017321 0 ustar 00root root 0000000 0000000 #!/bin/bash
set -e
sudo add-apt-repository -y ppa:kxstudio-debian/kxstudio
sudo add-apt-repository -y ppa:kxstudio-debian/mingw
sudo add-apt-repository -y ppa:kxstudio-debian/toolchain
if [ "${TARGET}" = "linux-strict" ] || [ "${TARGET}" = "linux-juce-strict" ]; then
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
fi
sudo apt-get update -qq
sudo apt-get install kxstudio-repos
sudo apt-get update -qq
Carla-2.1/.travis/install.sh 0000775 0000000 0000000 00000006316 13644756202 0016010 0 ustar 00root root 0000000 0000000 #!/bin/bash
set -e
if [ "${TARGET}" = "linux" ]; then
sudo apt-get install -y \
g++-multilib \
pkg-config \
pyqt5-dev-tools \
python3-pyqt5.qtsvg \
python3-rdflib \
libgtk2.0-dev \
libgtk-3-dev \
libqt4-dev \
qtbase5-dev \
libasound2-dev \
libpulse-dev \
libmagic-dev \
libgl1-mesa-dev \
libx11-dev \
libx11-6:i386 \
liblo-static \
fluidsynth-static \
mingw32-x-gcc \
mingw32-x-pkgconfig \
mingw64-x-gcc \
mingw64-x-pkgconfig \
wine-rt-dev
# Fix for 32bit bridge link
sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
elif [ "${TARGET}" = "linux-strict" ]; then
sudo apt-get install -y \
g++-8 \
g++-8-multilib \
pkg-config \
pyqt5-dev-tools \
python3-pyqt5.qtsvg \
python3-rdflib \
libgtk2.0-dev \
libgtk-3-dev \
libqt4-dev \
qtbase5-dev \
libasound2-dev \
libpulse-dev \
libmagic-dev \
libgl1-mesa-dev \
libx11-dev \
libx11-6:i386 \
liblo-static \
fluidsynth-static
# Fix for 32bit bridge link
sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
elif [ "${TARGET}" = "linux-juce-strict" ]; then
sudo apt-get install -y \
g++-8 \
pkg-config \
pyqt5-dev-tools \
python3-pyqt5.qtsvg \
python3-rdflib \
libgtk2.0-dev \
libgtk-3-dev \
libqt4-dev \
qtbase5-dev \
libasound2-dev \
libjack-jackd2-dev \
libfreetype6-dev \
libmagic-dev \
libgl1-mesa-dev \
libx11-dev \
libxext-dev \
liblo-static \
fluidsynth-static
elif [ "${TARGET}" = "macos" ]; then
sudo apt-get install -y \
pkg-config \
apple-x86-setup
# mkdir /tmp/osx-macports-pkgs
# cd /tmp/osx-macports-pkgs
# wget https://launchpad.net/~kxstudio-team/+archive/ubuntu/builds/+files/apple-macports-flac_1.2.1-1_all.deb
# wget https://launchpad.net/~kxstudio-team/+archive/ubuntu/builds/+files/apple-macports-libiconv_1.14-0_all.deb
# wget https://launchpad.net/~kxstudio-team/+archive/ubuntu/builds/+files/apple-macports-liblo_0.26-1_all.deb
# wget https://launchpad.net/~kxstudio-team/+archive/ubuntu/builds/+files/apple-macports-libogg_1.3.0-1_all.deb
# wget https://launchpad.net/~kxstudio-team/+archive/ubuntu/builds/+files/apple-macports-libsndfile_1.0.25-0_all.deb
# wget https://launchpad.net/~kxstudio-team/+archive/ubuntu/builds/+files/apple-macports-libvorbis_1.3.3-0_all.deb
# cd ~
# rm -r /tmp/osx-macports-pkgs
elif [ "${TARGET}" = "win32" ]; then
sudo apt-get install -y \
mingw32-x-gcc \
mingw32-x-pkgconfig
elif [ "${TARGET}" = "win64" ]; then
sudo apt-get install -y \
mingw32-x-gcc \
mingw32-x-pkgconfig \
mingw64-x-gcc \
mingw64-x-pkgconfig
fi
# mingw32-x-fluidsynth
# mingw32-x-fftw
# mingw32-x-liblo
# mingw32-x-mxml
# mingw32-x-zlib
# mingw64-x-fluidsynth
# mingw64-x-fftw
# mingw64-x-liblo
# mingw64-x-mxml
# mingw64-x-zlib
Carla-2.1/.travis/script-linux-juce-strict.sh 0000775 0000000 0000000 00000000621 13644756202 0021226 0 ustar 00root root 0000000 0000000 #!/bin/bash
set -e
# Preparation
export CC=gcc-8
export CXX=g++-8
export PKG_CONFIG_PATH=/opt/kxstudio/lib/pkgconfig:${PKG_CONFIG_PATH}
unset CFLAGS
unset CXXFLAGS
unset LDFLAGS
# Start clean
make distclean >/dev/null
# Print available features
make features
# Build things that we skip strict tests for
make 3rd frontend USING_JUCE=true
# Build native stuff
make TESTBUILD=true USING_JUCE=true
Carla-2.1/.travis/script-linux-strict.sh 0000775 0000000 0000000 00000000711 13644756202 0020302 0 ustar 00root root 0000000 0000000 #!/bin/bash
set -e
# Preparation
export CC=gcc-8
export CXX=g++-8
export PKG_CONFIG_PATH=/opt/kxstudio/lib/pkgconfig:${PKG_CONFIG_PATH}
unset CFLAGS
unset CXXFLAGS
unset LDFLAGS
# Start clean
make distclean >/dev/null
# Print available features
make features
# Build things that we skip strict tests for
make 3rd frontend
make -C source/modules/water posix32
# Build native stuff
make TESTBUILD=true
# Build 32bit bridges
make TESTBUILD=true posix32
Carla-2.1/.travis/script-linux.sh 0000775 0000000 0000000 00000001256 13644756202 0017001 0 ustar 00root root 0000000 0000000 #!/bin/bash
set -e
# Preparation
_FLAGS="-Werror"
export CFLAGS="${_FLAGS}"
export CXXFLAGS="${_FLAGS}"
export LDFLAGS="-L/opt/kxstudio/lib"
export PATH=/opt/kxstudio/bin:${PATH}
export PKG_CONFIG_PATH=/opt/kxstudio/lib/pkgconfig:${PKG_CONFIG_PATH}
# Start clean
make distclean >/dev/null
# Print available features
make features
# Build native stuff
make all posix32 posix64
# Build wine bridges
make wine32 wine64
# Build windows binaries for bridges
env PATH=/opt/mingw32/bin:${PATH} make win32 USING_JUCE=false CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++
env PATH=/opt/mingw64/bin:${PATH} make win64 USING_JUCE=false CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++
Carla-2.1/.travis/script-macos.sh 0000775 0000000 0000000 00000000573 13644756202 0016745 0 ustar 00root root 0000000 0000000 #!/bin/bash
set -e
# Preparation
_FLAGS="-Wno-attributes -Wno-deprecated-declarations -Werror -DBUILDING_FOR_CI"
export CFLAGS="${_FLAGS}"
export CXXFLAGS="${_FLAGS}"
export MACOS_OLD=true
export CROSS_COMPILING=true
. /usr/bin/apple-cross-setup.env
# Start clean
make distclean >/dev/null
# Print available features
make features
# Build native stuff
make USING_JUCE=false
Carla-2.1/.travis/script-win32.sh 0000775 0000000 0000000 00000001105 13644756202 0016575 0 ustar 00root root 0000000 0000000 #!/bin/bash
set -e
# Preparation
_FLAGS="-DFLUIDSYNTH_NOT_A_DLL -DPTW32_STATIC_LIB -Werror -DBUILDING_FOR_CI"
_PREFIX=i686-w64-mingw32
export AR=${_PREFIX}-ar
export CC=${_PREFIX}-gcc
export CXX=${_PREFIX}-g++
export CFLAGS="${_FLAGS}"
export CXXFLAGS="${_FLAGS}"
export PATH=/opt/mingw32/${_PREFIX}/bin:/opt/mingw32/bin:${PATH}
export PKG_CONFIG_PATH=/opt/mingw32/lib/pkgconfig:${PKG_CONFIG_PATH}
export CROSS_COMPILING=true
# Start clean
make distclean >/dev/null
# Print available features
make features
# Build native stuff
make BUILDING_FOR_WINDOWS=true USING_JUCE=false
Carla-2.1/.travis/script-win64.sh 0000775 0000000 0000000 00000001107 13644756202 0016604 0 ustar 00root root 0000000 0000000 #!/bin/bash
set -e
# Preparation
_FLAGS="-DFLUIDSYNTH_NOT_A_DLL -DPTW32_STATIC_LIB -Werror -DBUILDING_FOR_CI"
_PREFIX=x86_64-w64-mingw32
export AR=${_PREFIX}-ar
export CC=${_PREFIX}-gcc
export CXX=${_PREFIX}-g++
export CFLAGS="${_FLAGS}"
export CXXFLAGS="${_FLAGS}"
export PATH=/opt/mingw64/${_PREFIX}/bin:/opt/mingw64/bin:${PATH}
export PKG_CONFIG_PATH=/opt/mingw64/lib/pkgconfig:${PKG_CONFIG_PATH}
export CROSS_COMPILING=true
# Start clean
make distclean >/dev/null
# Print available features
make features
# Build native stuff
make BUILDING_FOR_WINDOWS=true USING_JUCE=false
Carla-2.1/INSTALL.md 0000664 0000000 0000000 00000005274 13644756202 0014047 0 ustar 00root root 0000000 0000000 # INSTALL for Carla
To install Carla, simply run as usual:
```
$ make
$ [sudo] make install
```
You can run it without installing, by using instead:
```
$ make
$ ./source/frontend/carla
```
Packagers can make use of the `PREFIX` and `DESTDIR` variable during install, like this:
```
$ make install PREFIX=/usr DESTDIR=./test-dir
```
## BUILD DEPENDENCIES
There are no required build dependencies. The default build is probably not what you want though.
If you want the frontend (which is likely), you will need PyQt5 (python3 version).
You likely will also want:
- libmagic/file (for auto-detection of binary types, needed for plugin-bridges)
- liblo (for OSC support, also a requirement for DSSI UIs)
Optional for extra Linux-only engine features:
- ALSA
- PulseAudio
- X11 (LV2/VST X11 UI support)
Optional for extended LV2 UIs support: (Linux only)
- Gtk2
- Gtk3
- Qt4
- Qt5
Optional for extra samplers support:
- FluidSynth (SF2/3)
Optional for extra LADSPA plugin information:
- python3-rdflib
You can use:
```
$ make features
```
To find out which dependencies are missing.
Under Debian based systems, you can use this command to install everything:
```
sudo apt install python3-pyqt5.qtsvg python3-rdflib pyqt5-dev-tools \
libmagic-dev liblo-dev libasound2-dev libpulse-dev libx11-dev \
libgtk2.0-dev libgtk-3-dev libqt4-dev qtbase5-dev libfluidsynth-dev
```
Under Fedora, you can use the following command instead:
```
sudo dnf install python3-qt5-devel python3-rdflib \
file-devel liblo-devel alsa-lib-devel pulseaudio-libs-devel libX11-devel
gtk2-devel gtk3-devel qt4-devel qt5-devel fluidsynth-devel libsndfile-devel
```
## BUILD BRIDGES (Experimental)
Carla can make use of plugin bridges to load additional plugin types.
### 32bit plugins on 64bit systems
Simply run `make posix32` after a regular Carla build, and install or run Carla locally.
This feature requires a compiler capable of building 32bit binaries.
### JACK Applications inside Carla
This is built by default on Linux systems.
Requires LD_PRELOAD support by the OS and the GCC compiler.
Does not work with clang. (if you discover why, please let me know!)
### Windows plugins (via Wine)
Requires a mingw compiler, and winegcc.
First, we build the Windows bridges using mingw, like this: (adjust as needed)
```
make win32 CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++
make win64 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++
```
To finalize, we build the wine<->native bridges using winegcc:
```
make wine32
make wine64
```
Then install or run Carla locally as usual.
Don't forget to enable experimental options and plugin bridges in Carla settings to actually be able to use them.
Carla-2.1/Makefile 0000664 0000000 0000000 00000074235 13644756202 0014062 0 ustar 00root root 0000000 0000000 #!/usr/bin/make -f
# Makefile for Carla #
# ------------------ #
# Created by falkTX
#
CWD=source
include source/Makefile.mk
# ---------------------------------------------------------------------------------------------------------------------
PREFIX := /usr/local
BINDIR := $(PREFIX)/bin
LIBDIR := $(PREFIX)/lib
DATADIR := $(PREFIX)/share
INCLUDEDIR := $(PREFIX)/include
DESTDIR :=
ifeq ($(DEBUG),true)
MODULEDIR := $(CURDIR)/build/modules/Debug
else
MODULEDIR := $(CURDIR)/build/modules/Release
endif
# ---------------------------------------------------------------------------------------------------------------------
all: backend discovery bridges-plugin bridges-ui frontend interposer libjack plugin theme
# ---------------------------------------------------------------------------------------------------------------------
# Binaries (native)
ALL_LIBS += $(MODULEDIR)/carla_engine.a
ALL_LIBS += $(MODULEDIR)/carla_engine_plugin.a
ALL_LIBS += $(MODULEDIR)/carla_plugin.a
ALL_LIBS += $(MODULEDIR)/jackbridge.a
ALL_LIBS += $(MODULEDIR)/native-plugins.a
ALL_LIBS += $(MODULEDIR)/rtmempool.a
3RD_LIBS += $(MODULEDIR)/audio_decoder.a
3RD_LIBS += $(MODULEDIR)/lilv.a
3RD_LIBS += $(MODULEDIR)/sfzero.a
3RD_LIBS += $(MODULEDIR)/water.a
ifeq ($(HAVE_DGL),true)
3RD_LIBS += $(MODULEDIR)/dgl.a
endif
ifeq ($(HAVE_HYLIA),true)
3RD_LIBS += $(MODULEDIR)/hylia.a
endif
ifeq ($(HAVE_QT4),true)
3RD_LIBS += $(MODULEDIR)/theme.qt4.a
endif
ifeq ($(HAVE_QT5),true)
3RD_LIBS += $(MODULEDIR)/theme.qt5.a
endif
ifeq ($(USING_JUCE),true)
3RD_LIBS += $(MODULEDIR)/juce_audio_basics.a
3RD_LIBS += $(MODULEDIR)/juce_audio_devices.a
3RD_LIBS += $(MODULEDIR)/juce_audio_processors.a
3RD_LIBS += $(MODULEDIR)/juce_core.a
3RD_LIBS += $(MODULEDIR)/juce_data_structures.a
3RD_LIBS += $(MODULEDIR)/juce_events.a
3RD_LIBS += $(MODULEDIR)/juce_graphics.a
3RD_LIBS += $(MODULEDIR)/juce_gui_basics.a
ifeq ($(MACOS),true)
3RD_LIBS += $(MODULEDIR)/juce_gui_extra.a
endif
else
3RD_LIBS += $(MODULEDIR)/rtaudio.a
3RD_LIBS += $(MODULEDIR)/rtmidi.a
endif
ALL_LIBS += $(3RD_LIBS)
3rd: $(3RD_LIBS)
@$(MAKE) -C source/theme
ifeq ($(HAVE_QT4),true)
@$(MAKE) -C source/bridges-ui ui_lv2-qt4
endif
libs: $(ALL_LIBS)
$(MODULEDIR)/carla_engine.a: .FORCE
@$(MAKE) -C source/backend/engine
$(MODULEDIR)/carla_engine_plugin.a: $(MODULEDIR)/carla_engine.a
@$(MAKE) -C source/backend/engine
$(MODULEDIR)/carla_plugin.a: .FORCE
@$(MAKE) -C source/backend/plugin
$(MODULEDIR)/jackbridge.a: .FORCE
@$(MAKE) -C source/jackbridge
$(MODULEDIR)/jackbridge.%.a: .FORCE
@$(MAKE) -C source/jackbridge $*
$(MODULEDIR)/native-plugins.a: .FORCE
@$(MAKE) -C source/native-plugins
$(MODULEDIR)/theme.qt4.a: .FORCE
@$(MAKE) -C source/theme qt4
$(MODULEDIR)/theme.qt5.a: .FORCE
@$(MAKE) -C source/theme qt5
$(MODULEDIR)/%.arm32.a: .FORCE
ifneq ($(WIN32),true)
@$(MAKE) -C source/modules/$* arm32
else
$(error Trying to build ARM binaries with a Windows toolchain, this cannot work)
endif
$(MODULEDIR)/%.posix32.a: .FORCE
ifneq ($(WIN32),true)
@$(MAKE) -C source/modules/$* posix32
else
$(error Trying to build POSIX binaries with a Windows toolchain, this cannot work)
endif
$(MODULEDIR)/%.posix64.a: .FORCE
ifneq ($(WIN32),true)
@$(MAKE) -C source/modules/$* posix64
else
$(error Trying to build POSIX binaries with a Windows toolchain, this cannot work)
endif
$(MODULEDIR)/%.win32.a: .FORCE
ifeq ($(WIN32),true)
@$(MAKE) -C source/modules/$* win32
else
$(error Trying to build Windows binaries with a regular toolchain, this cannot work)
endif
$(MODULEDIR)/%.win64.a: .FORCE
ifeq ($(WIN32),true)
@$(MAKE) -C source/modules/$* win64
else
$(error Trying to build Windows binaries with a regular toolchain, this cannot work)
endif
$(MODULEDIR)/dgl.wine.a: .FORCE
@$(MAKE) -C source/modules/dgl wine
$(MODULEDIR)/water.files.a: .FORCE
@$(MAKE) -C source/modules/water files
$(MODULEDIR)/%.a: .FORCE
@$(MAKE) -C source/modules/$*
# ---------------------------------------------------------------------------------------------------------------------
backend: libs
@$(MAKE) -C source/backend
bridges-plugin: libs
@$(MAKE) -C source/bridges-plugin
bridges-ui: libs
@$(MAKE) -C source/bridges-ui
discovery: libs
@$(MAKE) -C source/discovery
frontend: libs
ifeq ($(HAVE_PYQT),true)
@$(MAKE) -C source/frontend
endif
interposer:
ifeq ($(LINUX),true)
@$(MAKE) -C source/interposer
endif
libjack: libs
@$(MAKE) -C source/libjack
lv2-bundles-dep: $(MODULEDIR)/audio_decoder.a $(MODULEDIR)/water.a
@$(MAKE) -C source/native-plugins bundles
lv2-bundles: lv2-bundles-dep
@$(MAKE) -C source/plugin bundles
plugin: backend bridges-plugin bridges-ui discovery
@$(MAKE) -C source/plugin
ifeq ($(WIN32),true)
plugin-wine:
@$(MAKE) -C source/plugin wine
else
plugin-wine: $(MODULEDIR)/dgl.wine.a
@$(MAKE) -C source/plugin wine
endif
rest: libs
@$(MAKE) -C source/rest
theme: libs
@$(MAKE) -C source/theme
# ---------------------------------------------------------------------------------------------------------------------
# nuitka
nuitka: bin/carla bin/carla-rack bin/carla-plugin
bin/carla:
python3 -m nuitka \
-j 4 \
--python-flag -O --warn-unusual-code --warn-implicit-exceptions \
--follow-imports \
-o ./$@ \
./source/frontend/carla
bin/carla-rack:
python3 -m nuitka \
-j 8 \
--recurse-all \
--python-flag -O --warn-unusual-code --warn-implicit-exceptions \
--recurse-not-to=PyQt5 \
--file-reference-choice=runtime \
-o ./$@ \
./source/frontend/carla
bin/carla-plugin:
python3 -m nuitka \
-j 8 \
--recurse-all \
--python-flag -O --warn-unusual-code --warn-implicit-exceptions \
--recurse-not-to=PyQt5 \
--file-reference-choice=runtime \
-o ./$@ \
./source/native-plugins/resources/carla-plugin
# ---------------------------------------------------------------------------------------------------------------------
# Binaries (arm32)
LIBS_ARM32 = $(MODULEDIR)/jackbridge.arm32.a
LIBS_ARM32 += $(MODULEDIR)/lilv.arm32.a
LIBS_ARM32 += $(MODULEDIR)/rtmempool.arm32.a
LIBS_ARM32 += $(MODULEDIR)/water.arm32.a
arm32: $(LIBS_ARM32)
$(MAKE) -C source/bridges-plugin arm32
$(MAKE) -C source/discovery arm32
# ---------------------------------------------------------------------------------------------------------------------
# Binaries (posix32)
LIBS_POSIX32 = $(MODULEDIR)/jackbridge.posix32.a
LIBS_POSIX32 += $(MODULEDIR)/lilv.posix32.a
LIBS_POSIX32 += $(MODULEDIR)/rtmempool.posix32.a
LIBS_POSIX32 += $(MODULEDIR)/water.posix32.a
ifeq ($(USING_JUCE),true)
LIBS_POSIX32 += $(MODULEDIR)/juce_audio_basics.posix32.a
LIBS_POSIX32 += $(MODULEDIR)/juce_audio_processors.posix32.a
LIBS_POSIX32 += $(MODULEDIR)/juce_data_structures.posix32.a
LIBS_POSIX32 += $(MODULEDIR)/juce_core.posix32.a
LIBS_POSIX32 += $(MODULEDIR)/juce_events.posix32.a
ifeq ($(MACOS_OR_WIN32),true)
LIBS_POSIX32 += $(MODULEDIR)/juce_graphics.posix32.a
LIBS_POSIX32 += $(MODULEDIR)/juce_gui_basics.posix32.a
endif
ifeq ($(MACOS),true)
LIBS_POSIX32 += $(MODULEDIR)/juce_gui_extra.posix32.a
endif
endif
posix32: $(LIBS_POSIX32)
$(MAKE) -C source/bridges-plugin posix32
$(MAKE) -C source/discovery posix32
# ---------------------------------------------------------------------------------------------------------------------
# Binaries (posix64)
LIBS_POSIX64 = $(MODULEDIR)/jackbridge.posix64.a
LIBS_POSIX64 += $(MODULEDIR)/lilv.posix64.a
LIBS_POSIX64 += $(MODULEDIR)/rtmempool.posix64.a
LIBS_POSIX64 += $(MODULEDIR)/water.posix64.a
ifeq ($(USING_JUCE),true)
LIBS_POSIX64 += $(MODULEDIR)/juce_audio_basics.posix64.a
LIBS_POSIX64 += $(MODULEDIR)/juce_audio_processors.posix64.a
LIBS_POSIX64 += $(MODULEDIR)/juce_data_structures.posix64.a
LIBS_POSIX64 += $(MODULEDIR)/juce_core.posix64.a
LIBS_POSIX64 += $(MODULEDIR)/juce_events.posix64.a
ifeq ($(MACOS_OR_WIN32),true)
LIBS_POSIX64 += $(MODULEDIR)/juce_graphics.posix64.a
LIBS_POSIX64 += $(MODULEDIR)/juce_gui_basics.posix64.a
endif
ifeq ($(MACOS),true)
LIBS_POSIX64 += $(MODULEDIR)/juce_gui_extra.posix64.a
endif
endif
posix64: $(LIBS_POSIX64)
$(MAKE) -C source/bridges-plugin posix64
$(MAKE) -C source/discovery posix64
# ---------------------------------------------------------------------------------------------------------------------
# Binaries (win32)
ifeq ($(BUILDING_FOR_WINDOWS),true)
LIBS_WIN32 = $(MODULEDIR)/jackbridge.win32.a
else
LIBS_WIN32 = $(MODULEDIR)/jackbridge.win32e.a
endif
LIBS_WIN32 += $(MODULEDIR)/lilv.win32.a
LIBS_WIN32 += $(MODULEDIR)/rtmempool.win32.a
LIBS_WIN32 += $(MODULEDIR)/water.win32.a
ifeq ($(USING_JUCE),true)
LIBS_WIN32 += $(MODULEDIR)/juce_audio_basics.win32.a
LIBS_WIN32 += $(MODULEDIR)/juce_audio_processors.win32.a
LIBS_WIN32 += $(MODULEDIR)/juce_data_structures.win32.a
LIBS_WIN32 += $(MODULEDIR)/juce_core.win32.a
LIBS_WIN32 += $(MODULEDIR)/juce_events.win32.a
LIBS_WIN32 += $(MODULEDIR)/juce_graphics.win32.a
LIBS_WIN32 += $(MODULEDIR)/juce_gui_basics.win32.a
endif
win32: $(LIBS_WIN32)
$(MAKE) -C source/bridges-plugin win32
$(MAKE) -C source/discovery win32
# ---------------------------------------------------------------------------------------------------------------------
# Binaries (win64)
ifeq ($(BUILDING_FOR_WINDOWS),true)
LIBS_WIN64 = $(MODULEDIR)/jackbridge.win64.a
else
LIBS_WIN64 = $(MODULEDIR)/jackbridge.win64e.a
endif
LIBS_WIN64 += $(MODULEDIR)/lilv.win64.a
LIBS_WIN64 += $(MODULEDIR)/rtmempool.win64.a
LIBS_WIN64 += $(MODULEDIR)/water.win64.a
ifeq ($(USING_JUCE),true)
LIBS_WIN64 += $(MODULEDIR)/juce_audio_basics.win64.a
LIBS_WIN64 += $(MODULEDIR)/juce_audio_processors.win64.a
LIBS_WIN64 += $(MODULEDIR)/juce_data_structures.win64.a
LIBS_WIN64 += $(MODULEDIR)/juce_core.win64.a
LIBS_WIN64 += $(MODULEDIR)/juce_events.win64.a
LIBS_WIN64 += $(MODULEDIR)/juce_graphics.win64.a
LIBS_WIN64 += $(MODULEDIR)/juce_gui_basics.win64.a
endif
win64: $(LIBS_WIN64)
$(MAKE) -C source/bridges-plugin win64
$(MAKE) -C source/discovery win64
# ---------------------------------------------------------------------------------------------------------------------
# Binaries (wine)
wine32:
$(MAKE) -C source/jackbridge wine32
cp -f $(MODULEDIR)/jackbridge-wine32.dll.so $(CURDIR)/bin/jackbridge-wine32.dll
wine64:
$(MAKE) -C source/jackbridge wine64
cp -f $(MODULEDIR)/jackbridge-wine64.dll.so $(CURDIR)/bin/jackbridge-wine64.dll
# ---------------------------------------------------------------------------------------------------------------------
clean:
$(MAKE) clean -C source/backend
$(MAKE) clean -C source/bridges-plugin
$(MAKE) clean -C source/bridges-ui
$(MAKE) clean -C source/discovery
$(MAKE) clean -C source/frontend
$(MAKE) clean -C source/interposer
$(MAKE) clean -C source/libjack
$(MAKE) clean -C source/modules
$(MAKE) clean -C source/native-plugins
$(MAKE) clean -C source/plugin
$(MAKE) clean -C source/tests
$(MAKE) clean -C source/theme
rm -f *~ source/*~
distclean: clean
rm -f bin/*.exe bin/*.dll bin/*.dylib bin/*.so
rm -rf build build-lv2
cpp:
$(MAKE) CPPMODE=true
debug:
$(MAKE) DEBUG=true
doxygen:
$(MAKE) doxygen -C source/backend
tests:
$(MAKE) -C source/tests
stoat:
stoat --recursive ./build/ --suppression ./data/stoat-supression.txt --whitelist ./data/stoat-whitelist.txt --graph-view ./data/stoat-callgraph.png
# stoat --recursive ./build/ \
# --suppression ./data/stoat-supression.txt \
# --whitelist ./data/stoat-whitelist.txt \
# --graph-view ./data/stoat-callgraph.png
# ---------------------------------------------------------------------------------------------------------------------
install_main:
# Create directories
install -d $(DESTDIR)$(BINDIR)
ifeq ($(LINUX),true)
install -d $(DESTDIR)$(LIBDIR)/carla/jack
else
install -d $(DESTDIR)$(LIBDIR)/carla
endif
install -d $(DESTDIR)$(LIBDIR)/pkgconfig
install -d $(DESTDIR)$(INCLUDEDIR)/carla/includes
ifeq ($(LINUX),true)
ifeq ($(HAVE_JACK),true)
ifeq ($(JACKBRIDGE_DIRECT),true)
install -d $(DESTDIR)$(JACK_LIBDIR)
endif
endif
endif
ifeq ($(HAVE_PYQT),true)
# Create directories (gui)
install -d $(DESTDIR)$(LIBDIR)/carla/styles
install -d $(DESTDIR)$(DATADIR)/applications
install -d $(DESTDIR)$(DATADIR)/icons/hicolor/16x16/apps
install -d $(DESTDIR)$(DATADIR)/icons/hicolor/48x48/apps
install -d $(DESTDIR)$(DATADIR)/icons/hicolor/128x128/apps
install -d $(DESTDIR)$(DATADIR)/icons/hicolor/256x256/apps
install -d $(DESTDIR)$(DATADIR)/icons/hicolor/scalable/apps
install -d $(DESTDIR)$(DATADIR)/mime/packages
install -d $(DESTDIR)$(DATADIR)/carla/resources
install -d $(DESTDIR)$(DATADIR)/carla/modgui
install -d $(DESTDIR)$(DATADIR)/carla/patchcanvas
install -d $(DESTDIR)$(DATADIR)/carla/widgets
endif
# -------------------------------------------------------------------------------------------------------------
# Install script files (non-gui)
install -m 755 \
data/carla-single \
$(DESTDIR)$(BINDIR)
# Adjust PREFIX value in script files (non-gui)
sed $(SED_ARGS) 's?X-PREFIX-X?$(PREFIX)?' \
$(DESTDIR)$(BINDIR)/carla-single
# Install backend libs
install -m 644 \
bin/libcarla_*.* \
$(DESTDIR)$(LIBDIR)/carla
# Install other binaries
install -m 755 \
bin/*bridge-* \
bin/carla-discovery-* \
$(DESTDIR)$(LIBDIR)/carla
ifeq ($(LINUX),true)
ifeq ($(HAVE_JACK),true)
ifeq ($(JACKBRIDGE_DIRECT),true)
# Install internal jack client
ln -sf \
$(LIBDIR)/carla/libcarla_standalone2.so \
$(DESTDIR)$(JACK_LIBDIR)/carla.so
endif
endif
ifneq ($(JACKBRIDGE_DIRECT),true)
# Install custom libjack
install -m 755 \
bin/jack/libjack.so.0 \
$(DESTDIR)$(LIBDIR)/carla/jack
endif
endif
# Install pkg-config files
install -m 644 \
data/*.pc \
$(DESTDIR)$(LIBDIR)/pkgconfig
# Adjust PREFIX, LIBDIR and INCLUDEDIR in pkg-config files
sed $(SED_ARGS) 's?X-PREFIX-X?$(PREFIX)?' \
$(DESTDIR)$(LIBDIR)/pkgconfig/carla-native-plugin.pc \
$(DESTDIR)$(LIBDIR)/pkgconfig/carla-standalone.pc \
$(DESTDIR)$(LIBDIR)/pkgconfig/carla-utils.pc
sed $(SED_ARGS) 's?X-LIBDIR-X?$(LIBDIR)?' \
$(DESTDIR)$(LIBDIR)/pkgconfig/carla-native-plugin.pc \
$(DESTDIR)$(LIBDIR)/pkgconfig/carla-standalone.pc \
$(DESTDIR)$(LIBDIR)/pkgconfig/carla-utils.pc
sed $(SED_ARGS) 's?X-INCLUDEDIR-X?$(INCLUDEDIR)?' \
$(DESTDIR)$(LIBDIR)/pkgconfig/carla-native-plugin.pc \
$(DESTDIR)$(LIBDIR)/pkgconfig/carla-standalone.pc \
$(DESTDIR)$(LIBDIR)/pkgconfig/carla-utils.pc
# Install headers
install -m 644 \
source/backend/CarlaBackend.h \
source/backend/CarlaHost.h \
source/backend/CarlaUtils.h \
source/backend/CarlaEngine.hpp \
source/backend/CarlaPlugin.hpp \
source/includes/CarlaNative.h \
$(DESTDIR)$(INCLUDEDIR)/carla
install -m 644 \
source/includes/CarlaDefines.h \
source/includes/CarlaMIDI.h \
source/includes/CarlaNative.h \
source/includes/CarlaNativePlugin.h \
$(DESTDIR)$(INCLUDEDIR)/carla/includes
# -------------------------------------------------------------------------------------------------------------
ifeq ($(HAVE_PYQT),true)
ifneq ($(CPPMODE),true)
# Install script files (gui)
install -m 755 \
data/carla \
data/carla-database \
data/carla-jack-multi \
data/carla-jack-single \
data/carla-patchbay \
data/carla-rack \
data/carla-settings \
$(DESTDIR)$(BINDIR)
# Adjust PREFIX value in script files (gui)
sed $(SED_ARGS) 's?X-PREFIX-X?$(PREFIX)?' \
$(DESTDIR)$(BINDIR)/carla \
$(DESTDIR)$(BINDIR)/carla-database \
$(DESTDIR)$(BINDIR)/carla-jack-multi \
$(DESTDIR)$(BINDIR)/carla-jack-single \
$(DESTDIR)$(BINDIR)/carla-patchbay \
$(DESTDIR)$(BINDIR)/carla-rack \
$(DESTDIR)$(BINDIR)/carla-settings
ifeq ($(HAVE_LIBLO),true)
install -m 755 \
data/carla-control \
$(DESTDIR)$(BINDIR)
sed $(SED_ARGS) 's?X-PREFIX-X?$(PREFIX)?' \
$(DESTDIR)$(BINDIR)/carla-control
endif
# Install the real modgui bridge
install -m 755 \
data/carla-bridge-lv2-modgui \
$(DESTDIR)$(LIBDIR)/carla
sed $(SED_ARGS) 's?X-PREFIX-X?$(PREFIX)?' \
$(DESTDIR)$(LIBDIR)/carla/carla-bridge-lv2-modgui
# Install frontend
install -m 644 \
source/frontend/carla \
source/frontend/carla-control \
source/frontend/carla-jack-multi \
source/frontend/carla-jack-single \
source/frontend/carla-patchbay \
source/frontend/carla-rack \
source/frontend/*.py \
$(DESTDIR)$(DATADIR)/carla/
install -m 644 \
source/frontend/modgui/*.py \
$(DESTDIR)$(DATADIR)/carla/modgui/
install -m 644 \
source/frontend/patchcanvas/*.py \
$(DESTDIR)$(DATADIR)/carla/patchcanvas/
install -m 644 \
source/frontend/widgets/*.py \
$(DESTDIR)$(DATADIR)/carla/widgets/
# Adjust LIBDIR and DATADIR value in python code
sed $(SED_ARGS) 's?X_LIBDIR_X = None?X_LIBDIR_X = "$(LIBDIR)"?' \
$(DESTDIR)$(DATADIR)/carla/carla_shared.py
sed $(SED_ARGS) 's?X_DATADIR_X = None?X_DATADIR_X = "$(DATADIR)"?' \
$(DESTDIR)$(DATADIR)/carla/carla_shared.py
# Install resources (gui)
install -m 755 \
bin/resources/carla-plugin \
bin/resources/carla-plugin-patchbay \
bin/resources/*-ui \
$(DESTDIR)$(DATADIR)/carla/resources
endif # CPPMODE
ifeq ($(HAVE_THEME),true)
# Install theme
install -m 644 \
bin/styles/* \
$(DESTDIR)$(LIBDIR)/carla/styles
endif
# Install desktop files
install -m 644 data/carla.desktop $(DESTDIR)$(DATADIR)/applications
ifeq ($(HAVE_LIBLO),true)
install -m 644 data/carla-control.desktop $(DESTDIR)$(DATADIR)/applications
endif
# Install mime package
install -m 644 data/carla.xml $(DESTDIR)$(DATADIR)/mime/packages
# Install icons, 16x16
install -m 644 resources/16x16/carla.png $(DESTDIR)$(DATADIR)/icons/hicolor/16x16/apps
install -m 644 resources/16x16/carla-control.png $(DESTDIR)$(DATADIR)/icons/hicolor/16x16/apps
# Install icons, 48x48
install -m 644 resources/48x48/carla.png $(DESTDIR)$(DATADIR)/icons/hicolor/48x48/apps
install -m 644 resources/48x48/carla-control.png $(DESTDIR)$(DATADIR)/icons/hicolor/48x48/apps
# Install icons, 128x128
install -m 644 resources/128x128/carla.png $(DESTDIR)$(DATADIR)/icons/hicolor/128x128/apps
install -m 644 resources/128x128/carla-control.png $(DESTDIR)$(DATADIR)/icons/hicolor/128x128/apps
# Install icons, 256x256
install -m 644 resources/256x256/carla.png $(DESTDIR)$(DATADIR)/icons/hicolor/256x256/apps
install -m 644 resources/256x256/carla-control.png $(DESTDIR)$(DATADIR)/icons/hicolor/256x256/apps
# Install icons, scalable
install -m 644 resources/scalable/carla.svg $(DESTDIR)$(DATADIR)/icons/hicolor/scalable/apps
install -m 644 resources/scalable/carla-control.svg $(DESTDIR)$(DATADIR)/icons/hicolor/scalable/apps
# Install resources (re-use python files)
$(LINK) ../modgui $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../patchcanvas $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../widgets $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../carla_app.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../carla_backend.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../carla_backend_qt.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../carla_control.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../carla_database.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../carla_host.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../carla_settings.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../carla_skin.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../carla_shared.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../carla_utils.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../carla_widgets.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../externalui.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../resources_rc.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../ui_carla_about.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../ui_carla_about_juce.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../ui_carla_add_jack.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../ui_carla_database.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../ui_carla_edit.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../ui_carla_host.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../ui_carla_parameter.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../ui_carla_plugin_calf.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../ui_carla_plugin_classic.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../ui_carla_plugin_compact.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../ui_carla_plugin_default.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../ui_carla_plugin_presets.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../ui_carla_refresh.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../ui_carla_settings.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../ui_carla_settings_driver.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../ui_inputdialog_value.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../ui_midipattern.py $(DESTDIR)$(DATADIR)/carla/resources
endif # HAVE_PYQT
# -------------------------------------------------------------------------------------------------------------
# Install lv2 plugin
install -d $(DESTDIR)$(LIBDIR)/lv2/carla.lv2
install -m 644 \
bin/carla.lv2/carla.* \
bin/carla.lv2/*.ttl \
$(DESTDIR)$(LIBDIR)/lv2/carla.lv2
# Link binaries for lv2 plugin
@for i in `find $(DESTDIR)$(LIBDIR)/carla/ -maxdepth 1 -type f -exec basename {} ';'`; do \
$(LINK) ../../carla/$$i $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/$$i; \
done
rm -f $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/libcarla_standalone2.*
ifeq ($(LINUX),true)
# Link jack app bridge
rm -rf $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/jack
$(LINK) ../../carla/jack $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/jack
endif
ifeq ($(HAVE_PYQT),true)
# Link resources for lv2 plugin
rm -rf $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/resources
$(LINK) ../../../share/carla/resources $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/resources
# Link styles for lv2 plugin
rm -rf $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/styles
$(LINK) ../../carla/styles $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/styles
endif
# -------------------------------------------------------------------------------------------------------------
ifneq ($(HAIKU),true)
ifeq ($(HAVE_PYQT),true)
# Install vst plugin
install -d $(DESTDIR)$(LIBDIR)/vst/carla.vst
install -m 644 \
bin/CarlaRack*.* \
bin/CarlaPatchbay*.* \
$(DESTDIR)$(LIBDIR)/vst/carla.vst
# Link binaries for vst plugin
@for i in `find $(DESTDIR)$(LIBDIR)/carla/ -maxdepth 1 -type f -exec basename {} ';'`; do \
$(LINK) ../../carla/$$i $(DESTDIR)$(LIBDIR)/vst/carla.vst/$$i; \
done
rm -f $(DESTDIR)$(LIBDIR)/vst/carla.vst/libcarla_standalone2.*
# Link jack app bridge
rm -rf $(DESTDIR)$(LIBDIR)/vst/carla.vst/jack
$(LINK) ../../carla/jack $(DESTDIR)$(LIBDIR)/vst/carla.vst/jack
# Link resources for vst plugin
rm -rf $(DESTDIR)$(LIBDIR)/vst/carla.vst/resources
$(LINK) ../../../share/carla/resources $(DESTDIR)$(LIBDIR)/vst/carla.vst/resources
# Link styles for vst plugin
rm -rf $(DESTDIR)$(LIBDIR)/vst/carla.vst/styles
$(LINK) ../../carla/styles $(DESTDIR)$(LIBDIR)/vst/carla.vst/styles
endif
endif
# -------------------------------------------------------------------------------------------------------------
ifneq ($(HAVE_PYQT),true)
# Remove gui files for non-gui build
rm $(DESTDIR)$(LIBDIR)/carla/carla-bridge-lv2-modgui
rm $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/carla-bridge-lv2-modgui
endif
# ---------------------------------------------------------------------------------------------------------------------
ifneq ($(EXTERNAL_PLUGINS),true)
install_external_plugins:
endif
install: install_main install_external_plugins
# ---------------------------------------------------------------------------------------------------------------------
uninstall:
rm -f $(DESTDIR)$(BINDIR)/carla*
rm -f $(DESTDIR)$(LIBDIR)/pkgconfig/carla-native-plugin.pc
rm -f $(DESTDIR)$(LIBDIR)/pkgconfig/carla-standalone.pc
rm -f $(DESTDIR)$(LIBDIR)/pkgconfig/carla-utils.pc
rm -f $(DESTDIR)$(DATADIR)/applications/carla.desktop
rm -f $(DESTDIR)$(DATADIR)/applications/carla-control.desktop
rm -f $(DESTDIR)$(DATADIR)/icons/hicolor/*/apps/carla.png
rm -f $(DESTDIR)$(DATADIR)/icons/hicolor/*/apps/carla-control.png
rm -f $(DESTDIR)$(DATADIR)/icons/hicolor/scalable/apps/carla.svg
rm -f $(DESTDIR)$(DATADIR)/icons/hicolor/scalable/apps/carla-control.svg
rm -f $(DESTDIR)$(DATADIR)/mime/packages/carla.xml
rm -rf $(DESTDIR)$(LIBDIR)/carla
rm -rf $(DESTDIR)$(LIBDIR)/lv2/carla.lv2
rm -rf $(DESTDIR)$(LIBDIR)/lv2/carla-native.lv2
rm -rf $(DESTDIR)$(LIBDIR)/vst/carla.vst
rm -rf $(DESTDIR)$(DATADIR)/carla
rm -rf $(DESTDIR)$(INCLUDEDIR)/carla
# ----------------------------------------------------------------------------------------------------------------------------
ifneq ($(MAKE_TERMOUT),)
ANS_NO=\033[31mNO\033[0m
ANS_YES=\033[32mYES\033[0m
mS=\033[33m[
mZ=\033[30;1m[
mE=]\033[0m
tS=\033[36m
tE=\033[0m
else
ANS_NO=NO
ANS_YES=YES
mS=[
mZ=[
mE=]
endif
features_print_main:
@printf -- "$(tS)---> Main features $(tE)\n"
ifeq ($(HAVE_PYQT),true)
@printf -- "Front-End: $(ANS_YES)\n"
@printf -- "LV2 plugin: $(ANS_YES)\n"
ifneq ($(HAIKU),true)
@printf -- "VST plugin: $(ANS_YES)\n"
else
@printf -- "VST plugin: $(ANS_NO) $(mZ)Not available for Haiku$(mE)\n"
endif
else
@printf -- "Front-End: $(ANS_NO) $(mS)Missing PyQt$(mE)\n"
@printf -- "LV2 plugin: $(ANS_NO) $(mS)No front-end$(mE)\n"
@printf -- "VST plugin: $(ANS_NO) $(mS)No front-end$(mE)\n"
endif
ifeq ($(HAVE_HYLIA),true)
@printf -- "Link support: $(ANS_YES)\n"
else
ifeq ($(MACOS_OLD),true)
@printf -- "Link support: $(ANS_NO) $(mZ)MacOS >= 10.10 only$(mE)\n"
else
@printf -- "Link support: $(ANS_NO) $(mZ)Linux, MacOS and Windows only$(mE)\n"
endif
endif
ifeq ($(HAVE_LIBLO),true)
@printf -- "OSC support: $(ANS_YES)\n"
else
@printf -- "OSC support: $(ANS_NO) $(mS)Missing liblo$(mE)\n"
endif
ifeq ($(WIN32),true)
@printf -- "Binary detect: $(ANS_YES)\n"
else
ifeq ($(HAVE_LIBMAGIC),true)
@printf -- "Binary detect: $(ANS_YES)\n"
else
@printf -- "Binary detect: $(ANS_NO) $(mS)Missing libmagic/file$(mE)\n"
endif
endif
@printf -- "\n"
@printf -- "$(tS)---> Engine drivers $(tE)\n"
@printf -- "JACK: $(ANS_YES)\n"
ifeq ($(LINUX),true)
ifeq ($(HAVE_ALSA),true)
@printf -- "ALSA: $(ANS_YES)\n"
else
@printf -- "ALSA: $(ANS_NO) $(mS)Missing ALSA$(mE)\n"
endif
else
@printf -- "ALSA: $(ANS_NO) $(mZ)Linux only$(mE)\n"
endif
ifeq ($(UNIX),true)
ifneq ($(MACOS),true)
ifeq ($(HAVE_PULSEAUDIO),true)
@printf -- "PulseAudio: $(ANS_YES)\n"
else
@printf -- "PulseAudio: $(ANS_NO) $(mS)Missing PulseAudio$(mE)\n"
endif
else
@printf -- "PulseAudio: $(ANS_NO) $(mZ)Not available for MacOS$(mE)\n"
endif
else
@printf -- "PulseAudio: $(ANS_NO) $(mZ)Only available for Unix systems$(mE)\n"
endif
ifeq ($(MACOS),true)
@printf -- "CoreAudio: $(ANS_YES)\n"
else
@printf -- "CoreAudio: $(ANS_NO) $(mZ)MacOS only$(mE)\n"
endif
ifeq ($(WIN32),true)
@printf -- "ASIO: $(ANS_YES)\n"
@printf -- "DirectSound: $(ANS_YES)\n"
@printf -- "WASAPI: $(ANS_YES)\n"
else
@printf -- "ASIO: $(ANS_NO) $(mZ)Windows only$(mE)\n"
@printf -- "DirectSound: $(ANS_NO) $(mZ)Windows only$(mE)\n"
@printf -- "WASAPI: $(ANS_NO) $(mZ)Windows only$(mE)\n"
endif
@printf -- "\n"
@printf -- "$(tS)---> Plugin formats: $(tE)\n"
@printf -- "Internal: $(ANS_YES)\n"
@printf -- "LADSPA: $(ANS_YES)\n"
@printf -- "DSSI: $(ANS_YES)\n"
@printf -- "LV2: $(ANS_YES)\n"
ifeq ($(MACOS_OR_WIN32),true)
@printf -- "VST: $(ANS_YES) (with UI)\n"
else
ifeq ($(HAIKU),true)
@printf -- "VST: $(ANS_YES) (without UI)\n"
else
ifeq ($(HAVE_X11),true)
@printf -- "VST: $(ANS_YES) (with UI)\n"
else
@printf -- "VST: $(ANS_YES) (without UI) $(mS)Missing X11$(mE)\n"
endif
endif
endif
@printf -- "\n"
@printf -- "$(tS)---> LV2 UI toolkit support: $(tE)\n"
@printf -- "External: $(ANS_YES) (direct)\n"
ifneq ($(MACOS_OR_WIN32),true)
ifeq ($(HAVE_GTK2),true)
@printf -- "Gtk2: $(ANS_YES) (bridge)\n"
else
@printf -- "Gtk2: $(ANS_NO) $(mS)Gtk2 missing$(mE)\n"
endif
ifeq ($(HAVE_GTK3),true)
@printf -- "Gtk3: $(ANS_YES) (bridge)\n"
else
@printf -- "Gtk3: $(ANS_NO) $(mS)Gtk3 missing$(mE)\n"
endif
ifeq ($(HAVE_QT4),true)
@printf -- "Qt4: $(ANS_YES) (bridge)\n"
else
@printf -- "Qt4: $(ANS_NO) $(mS)Qt4 missing$(mE)\n"
endif
ifeq ($(HAVE_QT5),true)
@printf -- "Qt5: $(ANS_YES) (bridge)\n"
else
@printf -- "Qt5: $(ANS_NO) $(mS)Qt5 missing$(mE)\n"
endif
ifeq ($(HAVE_X11),true)
@printf -- "X11: $(ANS_YES) (direct+bridge)\n"
else
@printf -- "X11: $(ANS_NO) $(mS)X11 missing$(mE)\n"
endif
else # LINUX
@printf -- "Gtk2: $(ANS_NO) $(mZ)Not available for Windows or MacOS$(mE)\n"
@printf -- "Gtk3: $(ANS_NO) $(mZ)Not available for Windows or MacOS$(mE)\n"
@printf -- "Qt4: $(ANS_NO) $(mZ)Not available for Windows or MacOS$(mE)\n"
@printf -- "Qt5: $(ANS_NO) $(mZ)Not available for Windows or MacOS$(mE)\n"
@printf -- "X11: $(ANS_NO) $(mZ)Not available for Windows or MacOS$(mE)\n"
endif # LINUX
ifeq ($(MACOS),true)
@printf -- "Cocoa: $(ANS_YES) (direct+bridge)\n"
else
@printf -- "Cocoa: $(ANS_NO) $(mZ)MacOS only$(mE)\n"
endif
ifeq ($(WIN32),true)
@printf -- "Windows: $(ANS_YES) (direct+bridge)\n"
else
@printf -- "Windows: $(ANS_NO) $(mZ)Windows only$(mE)\n"
endif
@printf -- "\n"
@printf -- "$(tS)---> File formats: $(tE)\n"
ifeq ($(HAVE_SNDFILE),true)
@printf -- "Basic: $(ANS_YES)\n"
else
@printf -- "Basic: $(ANS_NO) $(mS)libsndfile missing$(mE)\n"
endif
ifeq ($(HAVE_FFMPEG),true)
@printf -- "Extra: $(ANS_YES)\n"
else
@printf -- "Extra: $(ANS_NO) $(mS)FFmpeg missing or too new$(mE)\n"
endif
ifeq ($(HAVE_FLUIDSYNTH),true)
@printf -- "SF2/3: $(ANS_YES)\n"
else
@printf -- "SF2/3: $(ANS_NO) $(mS)FluidSynth missing or too old$(mE)\n"
endif
@printf -- "SFZ: $(ANS_YES)\n"
@printf -- "\n"
@printf -- "$(tS)---> Internal plugins: $(tE)\n"
@printf -- "Basic Plugins: $(ANS_YES)\n"
@printf -- "Carla-Patchbay: $(ANS_YES)\n"
@printf -- "Carla-Rack: $(ANS_YES)\n"
ifeq ($(EXTERNAL_PLUGINS),true)
@printf -- "External Plugins: $(ANS_YES)\n"
else
@printf -- "External Plugins: $(ANS_NO)\n"
endif
ifneq ($(EXTERNAL_PLUGINS),true)
features_print_external_plugins:
endif
features: features_print_main features_print_external_plugins
# ---------------------------------------------------------------------------------------------------------------------
.FORCE:
.PHONY: .FORCE
# ---------------------------------------------------------------------------------------------------------------------
Carla-2.1/README.md 0000664 0000000 0000000 00000002510 13644756202 0013664 0 ustar 00root root 0000000 0000000 #  Carla Plugin Host
[](https://travis-ci.org/falkTX/Carla)
What is Carla?
---------------
Carla is a fully-featured audio plugin host, with support for many audio drivers and plugin formats.
It's open source and licensed under the GNU General Public License, version 2 or later.
Features
---------
* LADSPA, DSSI, LV2 and VST2, VST3 and AU plugin formats
* SF2/3 and SFZ sound banks
* Internal audio and midi file player
* Automation of plugin parameters via MIDI CC
* Remote control over OSC
* Rack and Patchbay processing modes, plus Single and Multi-Client if using JACK
* Native audio drivers (ALSA, DirectSound, CoreAudio, etc) and JACK
In experimental phase / work in progress:
* Export any Carla loadable plugin or sound bank as an LV2 plugin
* Plugin bridge support (such as running 32bit plugins on a 64bit Carla, or Windows plugins on Linux)
* Run JACK applications as audio plugins
* Transport controls, sync with JACK Transport or Ableton Link
Carla is also available as an LV2 plugin and VST2 plugin.
Screenshot
----------

See the [official webpage](http://kxstudio.linuxaudio.org/Applications:Carla) also.
Carla-2.1/bin/ 0000775 0000000 0000000 00000000000 13644756202 0013157 5 ustar 00root root 0000000 0000000 Carla-2.1/bin/carla-bridge-lv2-modgui 0000775 0000000 0000000 00000000176 13644756202 0017410 0 ustar 00root root 0000000 0000000 #!/bin/bash
ASPATH=$(readlink -f $0)
BINDIR=$(dirname $ASPATH)
exec python3 $BINDIR/../source/frontend/carla_modgui.py "$@"
Carla-2.1/bin/carla.lv2/ 0000775 0000000 0000000 00000000000 13644756202 0014743 5 ustar 00root root 0000000 0000000 Carla-2.1/bin/carla.lv2/resources 0000777 0000000 0000000 00000000000 13644756202 0021043 2../resources ustar 00root root 0000000 0000000 Carla-2.1/data/ 0000775 0000000 0000000 00000000000 13644756202 0013320 5 ustar 00root root 0000000 0000000 Carla-2.1/data/about.xcf 0000664 0000000 0000000 00001353513 13644756202 0015147 0 ustar 00root root 0000000 0000000 gimp xcf file / BB "
icc-profile H HLino mntrRGB XYZ 1 acspMSFT IEC sRGB -HP cprt P 3desc lwtpt bkpt rXYZ gXYZ , bXYZ @ dmnd T pdmdd vued L view $lumi meas $tech 0 rTRC <