pax_global_header 0000666 0000000 0000000 00000000064 14204167543 0014520 g ustar 00root root 0000000 0000000 52 comment=7b8eeef343ae4fd3405361ea06753a26e75f6a89
Carla-2.4.2/ 0000775 0000000 0000000 00000000000 14204167543 0012547 5 ustar 00root root 0000000 0000000 Carla-2.4.2/.github/ 0000775 0000000 0000000 00000000000 14204167543 0014107 5 ustar 00root root 0000000 0000000 Carla-2.4.2/.github/FUNDING.yml 0000664 0000000 0000000 00000000124 14204167543 0015721 0 ustar 00root root 0000000 0000000 github: falkTX
liberapay: falkTX
patreon: falkTX
custom: "https://paypal.me/falkTX"
Carla-2.4.2/.github/workflows/ 0000775 0000000 0000000 00000000000 14204167543 0016144 5 ustar 00root root 0000000 0000000 Carla-2.4.2/.github/workflows/build.yml 0000664 0000000 0000000 00000012651 14204167543 0017773 0 ustar 00root root 0000000 0000000 name: build
on:
push:
branches:
- '*'
pull_request:
branches:
- '*'
env:
DEBIAN_FRONTEND: noninteractive
HOMEBREW_NO_AUTO_UPDATE: 1
jobs:
macos-10_15:
runs-on: macos-10.15
steps:
- uses: actions/checkout@v2
- name: Set up dependencies
run: |
brew install fluid-synth liblo libmagic libsndfile pkg-config pyqt@5
- name: make features
run: make features
- name: make
run: make -j $(sysctl -n hw.logicalcpu)
msys2-i686:
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@v2
- uses: msys2/setup-msys2@v2
with:
msystem: mingw32
install: base-devel make mingw-w64-i686-toolchain mingw-w64-i686-fluidsynth mingw-w64-i686-liblo mingw-w64-i686-libsndfile mingw-w64-i686-pkg-config mingw-w64-i686-python-pyqt5
- name: make features
run: make features
- name: make
run: make -j $(nproc)
msys2-x86_64:
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@v2
- uses: msys2/setup-msys2@v2
with:
msystem: mingw64
install: base-devel make mingw-w64-x86_64-toolchain mingw-w64-x86_64-fluidsynth mingw-w64-x86_64-liblo mingw-w64-x86_64-libsndfile mingw-w64-x86_64-pkg-config mingw-w64-x86_64-python-pyqt5
- name: make features
run: make features
- name: make
run: make -j $(nproc)
ubuntu-18_04:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: Set up dependencies
run: |
sudo dpkg --add-architecture i386
sudo apt-get update -qq
sudo apt-get install -yq libasound2-dev libfluidsynth-dev libgl1-mesa-dev liblo-dev libmagic-dev libpulse-dev libqt4-dev libsndfile1-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev pkg-config pyqt5-dev-tools qtbase5-dev
sudo apt-get install -yq g++-multilib libfreetype6:i386 libx11-6:i386 libxext6:i386
# Fix 32bit bridge build
sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
sudo ln -s /usr/lib/i386-linux-gnu/libXext.so.6 /usr/lib/i386-linux-gnu/libXext.so
sudo ln -s /usr/lib/i386-linux-gnu/libfreetype.so.6 /usr/lib/i386-linux-gnu/libfreetype.so
- name: make features
run: make features
- name: make
run: make -j $(nproc)
- name: make posix32
run: make posix32 -j $(nproc)
ubuntu-20_04:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Fix GitHub's mess
run: |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get update -qq
sudo apt-get install -yqq --allow-downgrades libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal
- name: Set up dependencies
run: |
sudo dpkg --add-architecture i386
sudo apt-get update -qq
sudo apt-get install -yq libasound2-dev libfluidsynth-dev libgl1-mesa-dev liblo-dev libmagic-dev libpulse-dev libsndfile1-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev pkg-config pyqt5-dev-tools qtbase5-dev
sudo apt-get install -yq g++-multilib libfreetype6:i386 libx11-6:i386 libxext6:i386
# Fix 32bit bridge build
sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
sudo ln -s /usr/lib/i386-linux-gnu/libXext.so.6 /usr/lib/i386-linux-gnu/libXext.so
sudo ln -s /usr/lib/i386-linux-gnu/libfreetype.so.6 /usr/lib/i386-linux-gnu/libfreetype.so
- name: make features
run: make features
- name: make
run: make -j $(nproc)
- name: make posix32
run: make posix32 -j $(nproc)
ubuntu-mingw-win32:
runs-on: ubuntu-20.04
env:
CC: i686-w64-mingw32-gcc
CXX: i686-w64-mingw32-g++
EXE_WRAPPER: wine
PKG_CONFIG: "false"
WINEDEBUG: "-all"
steps:
- uses: actions/checkout@v2
- name: Fix GitHub's mess
run: |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get update -qq
sudo apt-get install -yqq --allow-downgrades libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal
- name: Set up dependencies
run: |
sudo dpkg --add-architecture i386
sudo apt-get update -qq
sudo apt-get install -yq binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 wine-stable:i386
- name: make features
run: make features
- name: make
run: make -j $(nproc)
ubuntu-mingw-win64:
runs-on: ubuntu-20.04
env:
CC: x86_64-w64-mingw32-gcc
CXX: x86_64-w64-mingw32-g++
EXE_WRAPPER: wine
PKG_CONFIG: "false"
WINEDEBUG: "-all"
steps:
- uses: actions/checkout@v2
- name: Fix GitHub's mess
run: |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get update -qq
sudo apt-get install -yqq --allow-downgrades libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal
- name: Set up dependencies
run: |
sudo apt-get update -qq
sudo apt-get install -yq binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 wine-stable
- name: make features
run: make features
- name: make
run: make -j $(nproc)
Carla-2.4.2/.github/workflows/irc.yml 0000664 0000000 0000000 00000001104 14204167543 0017440 0 ustar 00root root 0000000 0000000 name: irc
on: [push]
jobs:
notification:
runs-on: ubuntu-latest
name: IRC notification
steps:
- name: Format message
id: message
run: |
message="${{ github.actor }} pushed $(echo '${{ github.event.commits[0].message }}' | head -n 1) ${{ github.event.commits[0].url }}"
echo ::set-output name=message::"${message}"
- name: IRC notification
uses: Gottox/irc-message-action@v2
with:
channel: '#kxstudio'
nickname: kxstudio-bot
message: ${{ steps.message.outputs.message }}
Carla-2.4.2/.github/workflows/wine.yml 0000664 0000000 0000000 00000006024 14204167543 0017633 0 ustar 00root root 0000000 0000000 name: wine
on:
push:
branches:
- '*'
pull_request:
branches:
- '*'
env:
DEBIAN_FRONTEND: noninteractive
HOMEBREW_NO_AUTO_UPDATE: 1
jobs:
ubuntu-18_04:
runs-on: ubuntu-18.04
env:
WINECC: winegcc-stable
WINEDEBUG: "-all"
steps:
- uses: actions/checkout@v2
- name: Set up dependencies
run: |
sudo dpkg --add-architecture i386
sudo apt-get update -qq
sudo apt-get install -yq g++-multilib libfreetype6-dev libgl1-mesa-dev libx11-dev libxcursor-dev libxext-dev pkg-config wine-stable wine64-tools
sudo apt-get install -yq binutils-mingw-w64-i686 binutils-mingw-w64-x86-64 g++-mingw-w64-i686 g++-mingw-w64-x86-64 mingw-w64
- name: make
run: make -j $(nproc)
#- name: make wine32
#run: make wine32 -j $(nproc)
- name: make wine64
run: make wine64 -j $(nproc)
- name: make win32 CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++
run: make win32 CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ -j $(nproc)
- name: make win64 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++
run: make win64 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ -j $(nproc)
- name: make plugin-wine
run: make plugin-wine -j $(nproc)
- name: make plugin-wine CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++
run: make plugin-wine CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ -j $(nproc)
ubuntu-20_04:
runs-on: ubuntu-20.04
env:
WINECC: winegcc-stable
WINEDEBUG: "-all"
steps:
- uses: actions/checkout@v2
- name: Fix GitHub's mess
run: |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get update -qq
sudo apt-get install -yqq --allow-downgrades libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal
- name: Set up dependencies
run: |
sudo dpkg --add-architecture i386
sudo apt-get update -qq
sudo apt-get install -yq g++-multilib libfreetype6-dev libgl1-mesa-dev libx11-dev libxcursor-dev libxext-dev pkg-config wine-stable wine64-tools
sudo apt-get install -yq binutils-mingw-w64-i686 binutils-mingw-w64-x86-64 g++-mingw-w64-i686 g++-mingw-w64-x86-64 mingw-w64
- name: make
run: make -j $(nproc)
#- name: make wine32
#run: make wine32 -j $(nproc)
- name: make wine64
run: make wine64 -j $(nproc)
- name: make win32 CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++
run: make win32 CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ -j $(nproc)
- name: make win64 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++
run: make win64 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ -j $(nproc)
- name: make plugin-wine
run: make plugin-wine -j $(nproc)
- name: make plugin-wine CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++
run: make plugin-wine CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ -j $(nproc)
Carla-2.4.2/.gitignore 0000664 0000000 0000000 00000005507 14204167543 0014546 0 ustar 00root root 0000000 0000000 # Hidden files
.directory
.fuse-*
.*.kate-swp
.libmagic-tmp
.libmagic-tmp.bc
.kdev4/
.DS_Store
# Temp files
*~
*.bak
*.swp
*.swo
# Binary files
*.7z
*.bz2
*.a
*.o
*.dll
*.dll.def
*.dmg
*.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
# Translation files
*.qm
# 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/
Makefile.user.mk
Carla-2.4.2/.gitmodules 0000664 0000000 0000000 00000000203 14204167543 0014717 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.4.2/.travis.yml 0000664 0000000 0000000 00000002240 14204167543 0014656 0 ustar 00root root 0000000 0000000 language: cpp
os: linux
dist: focal
jobs:
include:
# linux with default, builds native and bridges
- os: linux
compiler: gcc
env:
- TARGET="linux"
# linux with macOS cross-compilation
- os: linux
compiler: gcc
dist: trusty
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"
# linux with default, tests python code
- os: linux
compiler: gcc
env:
- TARGET="pylint"
before_install:
- bash ${TRAVIS_BUILD_DIR}/.travis/before_install.sh
install:
- bash ${TRAVIS_BUILD_DIR}/.travis/install.sh
script:
- bash ${TRAVIS_BUILD_DIR}/.travis/script-${TARGET}.sh
notifications:
email: true
irc: "ircs://chat.libera.chat:7070/#kxstudio"
Carla-2.4.2/.travis/ 0000775 0000000 0000000 00000000000 14204167543 0014135 5 ustar 00root root 0000000 0000000 Carla-2.4.2/.travis/before_install.sh 0000664 0000000 0000000 00000003352 14204167543 0017464 0 ustar 00root root 0000000 0000000 #!/bin/bash
set -e
if [ "${TARGET}" = "macos-native" ] || [ "${TARGET}" = "macos-universal" ]; then
exit 0
fi
if [ "${TARGET}" = "macos" ]; then
# sudo rm /etc/apt/sources.list.d/cassandra.list
# sudo rm /etc/apt/sources.list.d/chris-lea-redis-server.list
# sudo rm /etc/apt/sources.list.d/computology_apt-backport.list
# sudo rm /etc/apt/sources.list.d/couchdb.list
# sudo rm /etc/apt/sources.list.d/docker.list
# sudo rm /etc/apt/sources.list.d/github_git-lfs.list
# sudo rm /etc/apt/sources.list.d/git-ppa.list
sudo rm /etc/apt/sources.list.d/google-chrome.list
# sudo rm /etc/apt/sources.list.d/heroku-toolbelt.list
# sudo rm /etc/apt/sources.list.d/mongodb-3.4.list
# sudo rm /etc/apt/sources.list.d/openjdk-r-java-ppa.list
# sudo rm /etc/apt/sources.list.d/pgdg.list
# sudo rm /etc/apt/sources.list.d/pollinate.list
# sudo rm /etc/apt/sources.list.d/rabbitmq_rabbitmq-server.list
# sudo rm /etc/apt/sources.list.d/webupd8team-java-ppa.list
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
sudo apt-get update -qq
sudo apt-get install kxstudio-repos
sudo apt-get update -qq
exit 0
fi
if [ "${TARGET}" = "linux" ] || [ "${TARGET}" = "win32" ] || [ "${TARGET}" = "win64" ]; then
wget -qO- https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add -
sudo apt-add-repository -y 'deb https://dl.winehq.org/wine-builds/ubuntu/ focal main'
sudo dpkg --add-architecture i386
sudo apt-get update -qq
sudo apt-get install -y -o APT::Immediate-Configure=false libc6 libc6:i386 libgcc-s1:i386
sudo apt-get install -y -f
exit 0
fi
Carla-2.4.2/.travis/install.sh 0000775 0000000 0000000 00000006336 14204167543 0016152 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 \
qtbase5-dev \
libasound2-dev \
libpulse-dev \
libmagic-dev \
libgl1-mesa-dev \
libx11-dev \
libx11-6:i386 \
liblo-static \
fluidsynth2-static \
mingw-w64 \
binutils-mingw-w64-i686 \
binutils-mingw-w64-x86-64 \
g++-mingw-w64-i686 \
g++-mingw-w64-x86-64 \
wine-devel-dev \
winehq-stable
# 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++-multilib \
g++-9-multilib \
pkg-config \
pyqt5-dev-tools \
python3-pyqt5.qtsvg \
python3-rdflib \
libgtk2.0-dev \
libgtk-3-dev \
qtbase5-dev \
libasound2-dev \
libpulse-dev \
libmagic-dev \
libgl1-mesa-dev \
libx11-dev \
libx11-6:i386 \
liblo-static \
fluidsynth2-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++-multilib \
g++-9-multilib \
pkg-config \
pyqt5-dev-tools \
python3-pyqt5.qtsvg \
python3-rdflib \
libgtk2.0-dev \
libgtk-3-dev \
qtbase5-dev \
libasound2-dev \
libjack-jackd2-dev \
libfreetype6-dev \
libmagic-dev \
libgl1-mesa-dev \
libx11-dev \
libxext-dev \
libx11-6:i386 \
libxext6:i386 \
libfreetype6:i386 \
liblo-static \
fluidsynth2-static
# Fix for 32bit bridge links
sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
sudo ln -s /usr/lib/i386-linux-gnu/libXext.so.6 /usr/lib/i386-linux-gnu/libXext.so
sudo ln -s /usr/lib/i386-linux-gnu/libfreetype.so.6 /usr/lib/i386-linux-gnu/libfreetype.so
elif [ "${TARGET}" = "macos" ]; then
sudo apt-get install -y \
pkg-config \
apple-x86-setup
elif [ "${TARGET}" = "macos-native" ] || [ "${TARGET}" = "macos-universal" ]; then
HOMEBREW_NO_AUTO_UPDATE=1 brew install cmake jq meson
exit 0
fi
elif [ "${TARGET}" = "win32" ]; then
sudo apt-get install -y \
g++-multilib \
mingw-w64 \
binutils-mingw-w64-i686 \
binutils-mingw-w64-x86-64 \
g++-mingw-w64-i686 \
g++-mingw-w64-x86-64 \
wine-devel-dev \
winehq-stable
elif [ "${TARGET}" = "win64" ]; then
sudo apt-get install -y \
mingw-w64 \
binutils-mingw-w64-x86-64 \
g++-mingw-w64-x86-64 \
wine-devel-dev \
winehq-stable
elif [ "${TARGET}" = "pylint" ]; then
sudo apt-get install -y \
pylint3 \
python3-liblo \
python3-pyqt5 python3-pyqt5.qtsvg python3-pyqt5.qtopengl python3-rdflib \
pyqt5-dev-tools \
qtbase5-dev
fi
Carla-2.4.2/.travis/script-linux-juce-strict.sh 0000775 0000000 0000000 00000002123 14204167543 0021365 0 ustar 00root root 0000000 0000000 #!/bin/bash
set -e
# Preparation
export CC=gcc-9
export CXX=g++-9
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 USING_JUCE=true features
# Build things that we skip strict tests for
make USING_JUCE=true 3rd frontend
make USING_JUCE=true -C source/modules/juce_audio_basics posix32
make USING_JUCE=true -C source/modules/juce_audio_devices posix32
make USING_JUCE=true -C source/modules/juce_audio_processors posix32
make USING_JUCE=true -C source/modules/juce_core posix32
make USING_JUCE=true -C source/modules/juce_data_structures posix32
make USING_JUCE=true -C source/modules/juce_events posix32
make USING_JUCE=true -C source/modules/juce_graphics posix32
make USING_JUCE=true -C source/modules/juce_gui_basics posix32
make USING_JUCE=true -C source/modules/juce_gui_extra posix32
make USING_JUCE=true -C source/modules/water posix32
# Build native stuff
make USING_JUCE=true TESTBUILD=true
# Build 32bit bridges
make USING_JUCE=true TESTBUILD=true posix32
Carla-2.4.2/.travis/script-linux-strict.sh 0000775 0000000 0000000 00000001036 14204167543 0020443 0 ustar 00root root 0000000 0000000 #!/bin/bash
set -e
# Preparation
export CC=gcc-9
export CXX=g++-9
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 USING_JUCE=false features
# Build things that we skip strict tests for
make USING_JUCE=false 3rd frontend
make USING_JUCE=false -C source/modules/water posix32
# Build native stuff
make USING_JUCE=false TESTBUILD=true
# Build 32bit bridges
make USING_JUCE=false TESTBUILD=true posix32
Carla-2.4.2/.travis/script-linux.sh 0000775 0000000 0000000 00000001355 14204167543 0017141 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 USING_JUCE=false features
# Build native stuff
make USING_JUCE=false all posix32 posix64
# Build wine bridges
make USING_JUCE=false wine32 wine64 plugin-wine
# 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.4.2/.travis/script-macos.sh 0000775 0000000 0000000 00000000552 14204167543 0017102 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
Carla-2.4.2/.travis/script-pylint.sh 0000775 0000000 0000000 00000002436 14204167543 0017322 0 ustar 00root root 0000000 0000000 #!/bin/bash
set -e
make -C source/frontend
ln -sf ../patchcanvas source/frontend/widgets/
if which pylint3 >/dev/null; then
pylint='pylint3'
else
pylint='pylint'
fi
# widget code, check all errors
${pylint} \
--extension-pkg-whitelist=PyQt5 \
--max-attributes=25 \
--max-line-length=120 \
--max-locals=25 \
--max-statements=100 \
--enable=\
bad-continuation,\
len-as-condition \
--disable=\
bad-whitespace,\
broad-except,\
fixme,\
invalid-name,\
missing-docstring \
source/frontend/widgets/canvaspreviewframe.py \
source/frontend/widgets/racklistwidget.py
# main app code, ignore some errors
${pylint} \
--extension-pkg-whitelist=PyQt5 \
--max-line-length=120 \
--disable=\
bad-whitespace,\
bare-except,\
blacklisted-name,\
duplicate-code,\
fixme,\
invalid-name,\
missing-docstring,\
too-few-public-methods,\
too-many-arguments,\
too-many-branches,\
too-many-instance-attributes,\
too-many-lines,\
too-many-locals,\
too-many-public-methods,\
too-many-return-statements,\
too-many-statements,\
unused-argument,\
wrong-import-position \
source/frontend/carla_{app,backend,backend_qt,settings,shared,utils,widgets}.py
# code not updated yet
${pylint} \
--extension-pkg-whitelist=PyQt5 \
-E \
source/frontend/carla_{database,host,skin}.py
Carla-2.4.2/.travis/script-win32.sh 0000775 0000000 0000000 00000001423 14204167543 0016740 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
MAKE_ARGS="BUILDING_FOR_WINDOWS=true CROSS_COMPILING=true USING_JUCE=false USING_JUCE_AUDIO_DEVICES=false"
MAKE_ARGS="${MAKE_ARGS} HAVE_FLUIDSYNTH=false HAVE_LIBLO=false HAVE_QT5=false HAVE_SNDFILE=false NEEDS_WINE=false"
# Start clean
make distclean >/dev/null
# Print available features
make ${MAKE_ARGS} features
# Build native stuff
make ${MAKE_ARGS}
Carla-2.4.2/.travis/script-win64.sh 0000775 0000000 0000000 00000001425 14204167543 0016747 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
MAKE_ARGS="BUILDING_FOR_WINDOWS=true CROSS_COMPILING=true USING_JUCE=false USING_JUCE_AUDIO_DEVICES=false"
MAKE_ARGS="${MAKE_ARGS} HAVE_FLUIDSYNTH=false HAVE_LIBLO=false HAVE_QT5=false HAVE_SNDFILE=false NEEDS_WINE=false"
# Start clean
make distclean >/dev/null
# Print available features
make ${MAKE_ARGS} features
# Build native stuff
make ${MAKE_ARGS}
Carla-2.4.2/INSTALL.md 0000664 0000000 0000000 00000005560 14204167543 0014205 0 ustar 00root root 0000000 0000000 # INSTALL for Carla
NOTE: when using MSYS2 on Windows, an additional step is necessary in order
to solve an issue with symbolic links to some dependency folders before build:
```
$ make msys2fix
```
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.4.2/Makefile 0000664 0000000 0000000 00000067677 14204167543 0014236 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
VERSION := 2.4.2
-include Makefile.user.mk
# ---------------------------------------------------------------------------------------------------------------------
all: backend discovery bridges-plugin bridges-ui frontend interposer libjack plugin theme
# ---------------------------------------------------------------------------------------------------------------------
# Binaries (native)
ifneq ($(STATIC_PLUGIN_TARGET),true)
ALL_LIBS += $(MODULEDIR)/carla_engine.a
endif
ALL_LIBS += $(MODULEDIR)/carla_engine_plugin.a
ALL_LIBS += $(MODULEDIR)/carla_plugin.a
ALL_LIBS += $(MODULEDIR)/jackbridge.a
ifeq ($(STATIC_PLUGIN_TARGET),true)
ALL_LIBS += $(MODULEDIR)/jackbridge.min.a
endif
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
3RD_LIBS += $(MODULEDIR)/zita-resampler.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
ifeq ($(USING_JUCE_AUDIO_DEVICES),true)
3RD_LIBS += $(MODULEDIR)/juce_audio_devices.a
endif
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 ($(USING_JUCE_GUI_EXTRA),true)
3RD_LIBS += $(MODULEDIR)/juce_gui_extra.a
endif
endif
ifeq ($(USING_RTAUDIO),true)
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: $(MODULEDIR)/jackbridge.a
@$(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 $(MODULEDIR)/zita-resampler.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
# ---------------------------------------------------------------------------------------------------------------------
# static targets
static-backend: libs
@$(MAKE) -C source/backend static
static-plugin: static-backend
@$(MAKE) -C source/plugin static
# ---------------------------------------------------------------------------------------------------------------------
# hacks
msys2fix:
rm -rf source/includes/serd
rm -rf source/includes/sord
rm -rf source/includes/sratom
rm -rf source/includes/lilv
cp -r source/modules/lilv/serd-0.24.0/serd source/includes/serd
cp -r source/modules/lilv/sord-0.16.0/sord source/includes/sord
cp -r source/modules/lilv/sratom-0.6.0/sratom source/includes/sratom
cp -r source/modules/lilv/lilv-0.24.0/lilv source/includes/lilv
# ---------------------------------------------------------------------------------------------------------------------
# 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
LIBS_POSIX32 += $(MODULEDIR)/juce_graphics.posix32.a
LIBS_POSIX32 += $(MODULEDIR)/juce_gui_basics.posix32.a
ifeq ($(USING_JUCE_GUI_EXTRA),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
LIBS_POSIX64 += $(MODULEDIR)/juce_graphics.posix64.a
LIBS_POSIX64 += $(MODULEDIR)/juce_gui_basics.posix64.a
ifeq ($(USING_JUCE_GUI_EXTRA),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)
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
ifeq ($(USING_JUCE_GUI_EXTRA),true)
LIBS_WIN32 += $(MODULEDIR)/juce_gui_extra.win32.a
endif
endif
LIBS_WINE32 = $(LIBS_WIN32) $(MODULEDIR)/jackbridge.win32e.a
LIBS_RWIN32 = $(LIBS_WIN32) $(MODULEDIR)/jackbridge.win32.a
win32: $(LIBS_WINE32)
$(MAKE) BUILDING_FOR_WINE=true -C source/bridges-plugin win32
$(MAKE) BUILDING_FOR_WINE=true -C source/discovery win32
win32r: $(LIBS_RWIN32)
ifeq ($(CC),x86_64-w64-mingw32-gcc)
$(MAKE) CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ -C source/bridges-plugin win32
$(MAKE) CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ -C source/discovery win32
else
$(MAKE) -C source/bridges-plugin win32
$(MAKE) -C source/discovery win32
endif
# ---------------------------------------------------------------------------------------------------------------------
# Binaries (win64)
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
ifeq ($(USING_JUCE_GUI_EXTRA),true)
LIBS_WIN64 += $(MODULEDIR)/juce_gui_extra.win64.a
endif
endif
LIBS_WINE64 = $(LIBS_WIN64) $(MODULEDIR)/jackbridge.win64e.a
LIBS_RWIN64 = $(LIBS_WIN64) $(MODULEDIR)/jackbridge.win64.a
win64: $(LIBS_WINE64)
$(MAKE) BUILDING_FOR_WINE=true -C source/bridges-plugin win64
$(MAKE) BUILDING_FOR_WINE=true -C source/discovery win64
win64r: $(LIBS_RWIN64)
ifeq ($(CC),i686-w64-mingw32-gcc)
$(MAKE) CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ -C source/bridges-plugin win64
$(MAKE) CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ -C source/discovery win64
else
$(MAKE) -C source/bridges-plugin win64
$(MAKE) -C source/discovery win64
endif
# ---------------------------------------------------------------------------------------------------------------------
# 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/modules
$(MAKE) clean -C source/native-plugins
$(MAKE) clean -C source/plugin
ifneq ($(STATIC_PLUGIN_TARGET),true)
$(MAKE) clean -C source/discovery
$(MAKE) clean -C source/frontend
$(MAKE) clean -C source/interposer
$(MAKE) clean -C source/libjack
$(MAKE) clean -C source/tests
$(MAKE) clean -C source/theme
endif
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)
install -d $(DESTDIR)$(DATADIR)/carla/resources
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)$(PREFIX)/share/appdata
install -d $(DESTDIR)$(DATADIR)/applications
install -d $(DESTDIR)$(DATADIR)/icons/hicolor/16x16/apps
install -d $(DESTDIR)$(DATADIR)/icons/hicolor/32x32/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/translations
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/pkgconfig/*.pc \
$(DESTDIR)$(LIBDIR)/pkgconfig
# Adjust PREFIX, LIBDIR, INCLUDEDIR and VERSION in pkg-config files
sed $(SED_ARGS) 's?X-PREFIX-X?$(PREFIX)?' \
$(DESTDIR)$(LIBDIR)/pkgconfig/carla-host-plugin.pc \
$(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-host-plugin.pc \
$(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-host-plugin.pc \
$(DESTDIR)$(LIBDIR)/pkgconfig/carla-native-plugin.pc \
$(DESTDIR)$(LIBDIR)/pkgconfig/carla-standalone.pc \
$(DESTDIR)$(LIBDIR)/pkgconfig/carla-utils.pc
sed $(SED_ARGS) 's?X-VERSION-X?$(VERSION)?' \
$(DESTDIR)$(LIBDIR)/pkgconfig/carla-host-plugin.pc \
$(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/backend/CarlaPluginPtr.hpp \
source/includes/CarlaNative.h \
source/includes/CarlaNativePlugin.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-jack-patchbayplugin \
data/carla-osc-gui \
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-jack-patchbayplugin \
$(DESTDIR)$(BINDIR)/carla-osc-gui \
$(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/desktop/carla.desktop $(DESTDIR)$(DATADIR)/applications
install -m 644 data/desktop/carla-rack.desktop $(DESTDIR)$(DATADIR)/applications
install -m 644 data/desktop/carla-patchbay.desktop $(DESTDIR)$(DATADIR)/applications
install -m 644 data/desktop/carla-jack-single.desktop $(DESTDIR)$(DATADIR)/applications
install -m 644 data/desktop/carla-jack-multi.desktop $(DESTDIR)$(DATADIR)/applications
ifeq ($(HAVE_LIBLO),true)
install -m 644 data/desktop/carla-control.desktop $(DESTDIR)$(DATADIR)/applications
endif
# Install app data
sed -e 's?X-VERSION-X?$(VERSION)?' \
data/appdata.xml > $(DESTDIR)$(PREFIX)/share/appdata/studio.kx.carla.appdata.xml
# 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, 32x32
install -m 644 resources/32x32/carla.png $(DESTDIR)$(DATADIR)/icons/hicolor/32x32/apps
install -m 644 resources/32x32/carla-control.png $(DESTDIR)$(DATADIR)/icons/hicolor/32x32/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_database.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../carla_host.py $(DESTDIR)$(DATADIR)/carla/resources
$(LINK) ../carla_host_control.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
$(LINK) ../ui_xycontroller.py $(DESTDIR)$(DATADIR)/carla/resources
# Install translations
$(foreach l,$(I18N_LANGUAGES),install -m 644 \
source/frontend/translations/carla_$(l).qm \
$(DESTDIR)$(DATADIR)/carla/resources/translations/;)
endif # HAVE_PYQT
# -------------------------------------------------------------------------------------------------------------
ifeq ($(CAN_GENERATE_LV2_TTL),true)
# 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
endif # CAN_GENERATE_LV2_TTL
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
ifeq ($(CAN_GENERATE_LV2_TTL),true)
rm $(DESTDIR)$(LIBDIR)/lv2/carla.lv2/carla-bridge-lv2-modgui
endif
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-host-plugin.pc
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
# ----------------------------------------------------------------------------------------------------------------------------
ifeq ($(MACOS),true)
ifneq ($(MACOS_OLD),true)
HAVE_DIST = true
endif
endif
ifeq ($(WIN32),true)
HAVE_DIST = true
endif
ifeq ($(HAVE_DIST),true)
include Makefile.dist.mk
else
dist:
endif
include Makefile.print.mk
# ---------------------------------------------------------------------------------------------------------------------
.FORCE:
.PHONY: .FORCE
# ---------------------------------------------------------------------------------------------------------------------
Carla-2.4.2/Makefile.dist.mk 0000664 0000000 0000000 00000055111 14204167543 0015562 0 ustar 00root root 0000000 0000000 #!/usr/bin/make -f
# Makefile for Carla #
# ------------------ #
# Created by falkTX
#
# NOTE to be imported from main Makefile
# ---------------------------------------------------------------------------------------------------------------------
PYTHON = $(EXE_WRAPPER) $(shell which python3$(APP_EXT))
ifeq ($(WIN32),true)
QT5_DLL_EXT = .dll
QT5_DLL_V = 5
endif
ifeq ($(MACOS),true)
QT5_LIB_PREFIX = lib
endif
ifeq ($(HAVE_QT5PKG),true)
QT5_PREFIX = $(shell pkg-config --variable=prefix Qt5OpenGLExtensions)
endif
# ---------------------------------------------------------------------------------------------------------------------
_PLUGIN_UIS = \
carla-plugin \
carla-plugin-patchbay \
bigmeter-ui \
midipattern-ui \
notes-ui \
xycontroller-ui
_QT5_DLLS = \
Qt$(QT5_DLL_V)Core$(QT5_DLL_EXT) \
Qt$(QT5_DLL_V)Gui$(QT5_DLL_EXT) \
Qt$(QT5_DLL_V)OpenGL$(QT5_DLL_EXT) \
Qt$(QT5_DLL_V)PrintSupport$(QT5_DLL_EXT) \
Qt$(QT5_DLL_V)Svg$(QT5_DLL_EXT) \
Qt$(QT5_DLL_V)Widgets$(QT5_DLL_EXT)
_QT5_PLUGINS = \
iconengines/$(QT5_LIB_PREFIX)qsvgicon$(LIB_EXT) \
imageformats/$(QT5_LIB_PREFIX)qjpeg$(LIB_EXT) \
imageformats/$(QT5_LIB_PREFIX)qsvg$(LIB_EXT)
ifeq ($(MACOS),true)
_QT5_PLUGINS += platforms/$(QT5_LIB_PREFIX)qcocoa$(LIB_EXT)
else ifeq ($(WIN32),true)
_QT5_PLUGINS += platforms/$(QT5_LIB_PREFIX)qwindows$(LIB_EXT)
endif
# NOTE this has to be hardcoded for now. oh well
ifeq ($(WIN32),true)
_PYTHON_FILES = \
libpython3.8.dll
endif
_THEME_FILES = \
styles/carlastyle.json \
styles/carlastyle$(LIB_EXT)
_CARLA_HOST_FILES = \
carla-bridge-lv2$(LIB_EXT) \
carla-bridge-lv2-gtk2$(APP_EXT) \
carla-bridge-lv2-gtk3$(APP_EXT) \
carla-bridge-native$(APP_EXT) \
carla-discovery-native$(APP_EXT) \
libcarla_utils$(LIB_EXT) \
$(_PLUGIN_UIS:%=resources/%$(APP_EXT))
ifeq ($(MACOS),true)
_CARLA_HOST_FILES += carla-bridge-lv2-cocoa$(APP_EXT)
_CARLA_HOST_FILES += magic.mgc
else ifeq ($(WIN32),true)
_CARLA_HOST_FILES += carla-bridge-lv2-windows$(APP_EXT)
endif
ifeq ($(MACOS),true)
ifneq ($(MACOS_UNIVERSAL),true)
_CARLA_HOST_FILES += carla-bridge-posix32
_CARLA_HOST_FILES += carla-discovery-posix32
endif
endif
ifeq ($(WIN64),true)
_CARLA_HOST_FILES += carla-bridge-win32$(APP_EXT)
_CARLA_HOST_FILES += carla-discovery-win32$(APP_EXT)
endif
_CARLA_APP_FILES = \
Carla$(APP_EXT) \
libcarla_host-plugin$(LIB_EXT) \
libcarla_native-plugin$(LIB_EXT) \
libcarla_standalone2$(LIB_EXT) \
$(_CARLA_HOST_FILES) \
$(_PYTHON_FILES) \
$(_QT5_DLLS) \
$(_QT5_PLUGINS) \
$(_THEME_FILES) \
resources/lib
_CARLA_CONTROL_APP_FILES = \
Carla-Control$(APP_EXT) \
libcarla_utils$(LIB_EXT) \
$(_PYTHON_FILES) \
$(_QT5_DLLS) \
$(_QT5_PLUGINS) \
$(_THEME_FILES)
_CARLA_LV2_PLUGIN_FILES = \
carla.lv2/carla$(LIB_EXT) \
carla.lv2/manifest.ttl \
carla.lv2/resources/lib/library.zip \
$(_CARLA_HOST_FILES:%=carla.lv2/%) \
$(_PYTHON_FILES:%=carla.lv2/resources/%) \
$(_QT5_DLLS:%=carla.lv2/resources/%) \
$(_QT5_PLUGINS:%=carla.lv2/resources/%) \
$(_THEME_FILES:%=carla.lv2/resources/%)
ifeq ($(MACOS),true)
_CARLA_VST2FX_PLUGIN_FILES = \
carlafx.vst/Contents/MacOS/CarlaVstFxShell \
carlafx.vst/Contents/MacOS/resources/lib/library.zip \
$(_CARLA_HOST_FILES:%=carlafx.vst/Contents/MacOS/%) \
$(_QT5_DLLS:%=carlafx.vst/Contents/MacOS/resources/%) \
$(_QT5_PLUGINS:%=carlafx.vst/Contents/MacOS/resources/%) \
$(_THEME_FILES:%=carlafx.vst/Contents/MacOS/resources/%)
_CARLA_VST2SYN_PLUGIN_FILES = \
carla.vst/Contents/MacOS/CarlaVstShell \
carla.vst/Contents/MacOS/resources/lib/library.zip \
$(_CARLA_HOST_FILES:%=carla.vst/Contents/MacOS/%) \
$(_QT5_DLLS:%=carla.vst/Contents/MacOS/resources/%) \
$(_QT5_PLUGINS:%=carla.vst/Contents/MacOS/resources/%) \
$(_THEME_FILES:%=carla.vst/Contents/MacOS/resources/%)
else ifeq ($(WIN32),true)
_CARLA_VST2_PLUGIN_FILES = \
carla.vst/CarlaVstShell.dll \
carla.vst/CarlaVstFxShell.dll \
carla.vst/resources/lib/library.zip \
$(_CARLA_HOST_FILES:%=carla.vst/%) \
$(_PYTHON_FILES:%=carla.vst/resources/%) \
$(_QT5_DLLS:%=carla.vst/resources/%) \
$(_QT5_PLUGINS:%=carla.vst/resources/%) \
$(_THEME_FILES:%=carla.vst/resources/%)
endif
ifeq ($(MACOS),true)
CARLA_APP_FILES = $(_CARLA_APP_FILES:%=build/Carla.app/Contents/MacOS/%)
CARLA_CONTROL_APP_FILES = $(_CARLA_CONTROL_APP_FILES:%=build/Carla-Control.app/Contents/MacOS/%)
CARLA_PLUGIN_ZIPS = $(_PLUGIN_UIS:%=build/%.app/Contents/MacOS/lib/library.zip)
else ifeq ($(WIN32),true)
CARLA_APP_FILES = $(_CARLA_APP_FILES:%=build/Carla/%)
CARLA_CONTROL_APP_FILES = $(_CARLA_CONTROL_APP_FILES:%=build/Carla-Control/%)
CARLA_PLUGIN_FILES = $(_CARLA_LV2_PLUGIN_FILES:%=build/%) $(_CARLA_VST2_PLUGIN_FILES:%=build/%)
CARLA_PLUGIN_ZIPS = $(_PLUGIN_UIS:%=build/%-resources/lib/library.zip)
endif
# ---------------------------------------------------------------------------------------------------------------------
# entry point
ifeq ($(MACOS_UNIVERSAL),true)
TARGETS = Carla-$(VERSION)-macOS-universal.dmg
else ifeq ($(MACOS),true)
TARGETS = Carla-$(VERSION)-macOS.dmg
else ifeq ($(WIN64),true)
TARGETS = Carla-$(VERSION)-win64.zip
else ifeq ($(WIN32),true)
TARGETS = Carla-$(VERSION)-win32.zip
endif
ifeq ($(HAVE_QT5PKG),true)
dist: $(TARGETS)
else
dist:
@echo make dist not supported in this configuration
endif
# ---------------------------------------------------------------------------------------------------------------------
# create final file
Carla-$(VERSION)-macOS.dmg: $(CARLA_APP_FILES) $(CARLA_CONTROL_APP_FILES) $(CARLA_PLUGIN_FILES)build/Carla.app/Contents/Info.plist build/Carla-Control.app/Contents/Info.plist build/Carla-Plugins.pkg
$(call GENERATE_FINAL_DMG,intel)
Carla-$(VERSION)-macOS-universal.dmg: $(CARLA_APP_FILES) $(CARLA_CONTROL_APP_FILES) $(CARLA_PLUGIN_FILES)build/Carla.app/Contents/Info.plist build/Carla-Control.app/Contents/Info.plist build/Carla-Plugins.pkg
$(call GENERATE_FINAL_DMG,universal)
Carla-$(VERSION)-win32.zip: $(CARLA_APP_FILES) $(CARLA_CONTROL_APP_FILES) $(CARLA_PLUGIN_FILES)
$(call GENERATE_FINAL_ZIP,win32)
Carla-$(VERSION)-win64.zip: $(CARLA_APP_FILES) $(CARLA_CONTROL_APP_FILES) $(CARLA_PLUGIN_FILES)
$(call GENERATE_FINAL_ZIP,win64)
ifneq ($(TESTING),true)
define GENERATE_FINAL_DMG
rm -rf build/macos-pkg $@
mkdir build/macos-pkg
cp -r build/Carla.app build/Carla-Control.app build/Carla-Plugins.pkg data/macos/README build/macos-pkg/
hdiutil create $@ -srcfolder build/macos-pkg -volname "Carla-$(VERSION)-${1}" -fs HFS+ -ov
rm -rf build/macos-pkg
endef
define GENERATE_FINAL_ZIP
rm -rf build/Carla-$(VERSION)-${1} $@
mkdir build/Carla-$(VERSION)-${1}
cp -r build/Carla build/Carla-Control data/windows/README.txt build/Carla-$(VERSION)-${1}/
cp -r build/carla.lv2 build/Carla-$(VERSION)-${1}/Carla.lv2
cp -r build/carla.vst build/Carla-$(VERSION)-${1}/Carla.vst
(cd build && \
zip -r -9 ../$@ Carla-$(VERSION)-${1})
rm -rf build/Carla-$(VERSION)-${1}
endef
else
define GENERATE_FINAL_DMG
endef
define GENERATE_FINAL_ZIP
endef
endif
# ---------------------------------------------------------------------------------------------------------------------
# macOS plist files
build/Carla.app/Contents/Info.plist: build/Carla.app/Contents/MacOS/Carla
$(call CLEANUP_AND_PATCH_CXFREEZE_FILES,Carla)
# extra step for standalone, symlink resources used in plugin UIs
mkdir -p build/Carla.app/Contents/MacOS/resources
(cd build/Carla.app/Contents/MacOS/resources && \
ln -sf ../Qt* ../lib ../iconengines ../imageformats ../platforms ../styles .)
# mark as done
touch $@
build/Carla-Control.app/Contents/Info.plist: build/Carla-Control.app/Contents/MacOS/Carla-Control
$(call CLEANUP_AND_PATCH_CXFREEZE_FILES,Carla-Control)
# mark as done
touch $@
# ---------------------------------------------------------------------------------------------------------------------
# macOS main executables
build/Carla.app/Contents/MacOS/Carla: build/Carla.app/Contents/MacOS/lib/library.zip
$(call CLEANUP_AND_PATCH_CXFREEZE_FILES,Carla)
# mark as done
touch $@
build/Carla-Control.app/Contents/MacOS/Carla-Control: build/Carla-Control.app/Contents/MacOS/lib/library.zip
$(call CLEANUP_AND_PATCH_CXFREEZE_FILES,Carla-Control)
# mark as done
touch $@
# ---------------------------------------------------------------------------------------------------------------------
# win32 main executables
build/Carla/Carla.exe: build/Carla/lib/library.zip
$(call CLEANUP_AND_PATCH_CXFREEZE_FILES,Carla)
# mark as done
touch $@
build/Carla-Control/Carla-Control.exe: build/Carla-Control/lib/library.zip
$(call CLEANUP_AND_PATCH_CXFREEZE_FILES,Carla-Control)
# mark as done
touch $@
# ---------------------------------------------------------------------------------------------------------------------
# cleanup functions
ifeq ($(MACOS),true)
define PATCH_QT_DEPENDENCIES
install_name_tool -change "@rpath/QtCore.framework/Versions/5/QtCore" @executable_path/QtCore ${1} && \
install_name_tool -change "@rpath/QtGui.framework/Versions/5/QtGui" @executable_path/QtGui ${1} && \
install_name_tool -change "@rpath/QtOpenGL.framework/Versions/5/QtOpenGL" @executable_path/QtOpenGL ${1} && \
install_name_tool -change "@rpath/QtPrintSupport.framework/Versions/5/QtPrintSupport" @executable_path/QtPrintSupport ${1} && \
install_name_tool -change "@rpath/QtSvg.framework/Versions/5/QtSvg" @executable_path/QtSvg ${1} && \
install_name_tool -change "@rpath/QtWidgets.framework/Versions/5/QtWidgets" @executable_path/QtWidgets ${1} && \
install_name_tool -change "@rpath/QtMacExtras.framework/Versions/5/QtMacExtras" @executable_path/QtMacExtras ${1}
endef
define CLEANUP_AND_PATCH_CXFREEZE_FILES
# cleanup
find build/${1}.app/Contents/MacOS/ -type f -name "*.py" -delete
find build/${1}.app/Contents/MacOS/ -type f -name "*.pyi" -delete
find build/${1}.app/Contents/MacOS/ -type f -name "pylupdate.so" -delete
find build/${1}.app/Contents/MacOS/ -type f -name "pyrcc.so" -delete
find build/${1}.app/Contents/MacOS/ -type f -name "QtMacExtras*" -delete
find build/${1}.app/Contents/MacOS/ -type f -name "QtNetwork*" -delete
find build/${1}.app/Contents/MacOS/ -type f -name "QtSql*" -delete
find build/${1}.app/Contents/MacOS/ -type f -name "QtTest*" -delete
find build/${1}.app/Contents/MacOS/ -type f -name "QtXml*" -delete
#find build/${1}.app/Contents/MacOS/ -type f -name "*.pyc" -delete
rm -rf build/${1}.app/Contents/MacOS/lib/PyQt5/uic
# adjust binaries
(cd build/${1}.app/Contents/MacOS && \
for f in `find . -type f | grep -e /Qt -e QOpenGL -e libq -e carlastyle.dylib -e sip.so`; do \
$(call PATCH_QT_DEPENDENCIES,$$f); \
done)
endef
else ifeq ($(WIN32),true)
define CLEANUP_AND_PATCH_CXFREEZE_FILES
# cleanup
find build/${1}/ -type f -name "*.py" -delete
find build/${1}/ -type f -name "*.pyi" -delete
find build/${1}/ -type f -name "pylupdate.so" -delete
find build/${1}/ -type f -name "pyrcc.so" -delete
find build/${1}/ -type f -name "QtMacExtras*" -delete
find build/${1}/ -type f -name "QtNetwork*" -delete
find build/${1}/ -type f -name "QtSql*" -delete
find build/${1}/ -type f -name "QtTest*" -delete
find build/${1}/ -type f -name "QtXml*" -delete
#find build/${1}/ -type f -name "*.pyc" -delete
rm -rf build/${1}/lib/PyQt5/uic
endef
endif
# ---------------------------------------------------------------------------------------------------------------------
# cxfreeze library.zip generation function
ifeq ($(MACOS),true)
define GENERATE_LIBRARY_ZIP
rm -rf build/exe.*
env PYTHONPATH=$(CURDIR)/source/frontend SCRIPT_NAME=${1} $(PYTHON) ./data/macos/bundle.py bdist_mac --bundle-name=${1} 1>/dev/null
endef
else ifeq ($(WIN32),true)
define GENERATE_LIBRARY_ZIP
env PYTHONPATH="$(CURDIR)/source/frontend;$(QT5_PREFIX)/lib/python3/site-packages" SCRIPT_NAME=${1} $(PYTHON) ./data/windows/app-gui.py build_exe 1>/dev/null
endef
endif
# ---------------------------------------------------------------------------------------------------------------------
# macOS application library zip files
build/Carla.app/Contents/MacOS/lib/library.zip: $(CARLA_PLUGIN_ZIPS) data/macos/bundle.py data/macos/Carla.plist source/frontend/*
$(call GENERATE_LIBRARY_ZIP,Carla)
# merge all zips into 1
rm -rf build/Carla.app/Contents/MacOS/lib/_lib
mkdir build/Carla.app/Contents/MacOS/lib/_lib
(cd build/Carla.app/Contents/MacOS/lib/_lib && \
mv ../library.zip ../library-main.zip && \
$(_PLUGIN_UIS:%=unzip -n $(CURDIR)/build/%.app/Contents/MacOS/lib/library.zip &&) \
unzip -o ../library-main.zip && \
zip -r -9 ../library.zip *)
rm -rf build/Carla.app/Contents/MacOS/lib/_lib
rm -rf build/Carla.app/Contents/MacOS/lib/library-main.zip
build/Carla-Control.app/Contents/MacOS/lib/library.zip: data/macos/bundle.py data/macos/Carla-Control.plist source/frontend/*
$(call GENERATE_LIBRARY_ZIP,Carla-Control)
build/%.app/Contents/MacOS/lib/library.zip: data/macos/bundle.py source/frontend/%
$(call GENERATE_LIBRARY_ZIP,$*)
# ---------------------------------------------------------------------------------------------------------------------
# win32 application library zip files
build/Carla/lib/library.zip: $(CARLA_PLUGIN_ZIPS) data/windows/app-gui.py source/frontend/* resources/ico/carla.ico
$(call GENERATE_LIBRARY_ZIP,Carla)
# merge all zips into 1
rm -rf build/Carla/lib/_lib
mkdir build/Carla/lib/_lib
(cd build/Carla/lib/_lib && \
mv ../library.zip ../library-main.zip && \
$(_PLUGIN_UIS:%=unzip -n $(CURDIR)/build/%-resources/lib/library.zip &&) \
unzip -o ../library-main.zip && \
zip -r -9 ../library.zip *)
rm -rf build/Carla/lib/_lib
rm -rf build/Carla/lib/library-main.zip
build/Carla-Control/lib/library.zip: data/windows/app-gui.py source/frontend/* resources/ico/carla-control.ico
$(call GENERATE_LIBRARY_ZIP,Carla-Control)
build/%-resources/lib/library.zip: data/windows/app-gui.py source/frontend/% resources/ico/carla.ico
$(call GENERATE_LIBRARY_ZIP,$*)
# delete useless files
rm -rf build/$*-resources/lib/*.dll build/$*-resources/lib/*.pyd build/$*-resources/lib/PyQt5
# ---------------------------------------------------------------------------------------------------------------------
# macOS plugin UIs (stored in resources, depend on their respective library.zip)
build/Carla.app/Contents/MacOS/resources/%: build/%.app/Contents/MacOS/lib/library.zip
-@mkdir -p $(shell dirname $@)
@cp -v build/$*.app/Contents/MacOS/$* $@
# ---------------------------------------------------------------------------------------------------------------------
# win32 plugin UIs (stored in resources, depend on their respective library.zip)
build/Carla/resources/%.exe: build/%-resources/lib/library.zip
-@mkdir -p $(shell dirname $@)
@cp -v build/$*-resources/$*.exe $@
# ---------------------------------------------------------------------------------------------------------------------
# common generic bundle files (either Qt or Carla binaries)
ifeq ($(MACOS),true)
_BUNDLE_EXTRA_PATH = /Contents/MacOS
_APP_BUNDLE_EXTRA_PATH = .app$(_BUNDLE_EXTRA_PATH)
endif
build/Carla$(_APP_BUNDLE_EXTRA_PATH)/iconengines/% build/Carla-Control$(_APP_BUNDLE_EXTRA_PATH)/iconengines/%: $(QT5_PREFIX)/lib/qt5/plugins/iconengines/%
-@mkdir -p $(shell dirname $@)
@cp -v $< $@
build/Carla$(_APP_BUNDLE_EXTRA_PATH)/imageformats/% build/Carla-Control$(_APP_BUNDLE_EXTRA_PATH)/imageformats/%: $(QT5_PREFIX)/lib/qt5/plugins/imageformats/%
-@mkdir -p $(shell dirname $@)
@cp -v $< $@
build/Carla$(_APP_BUNDLE_EXTRA_PATH)/platforms/% build/Carla-Control$(_APP_BUNDLE_EXTRA_PATH)/platforms/%: $(QT5_PREFIX)/lib/qt5/plugins/platforms/%
-@mkdir -p $(shell dirname $@)
@cp -v $< $@
build/Carla$(_APP_BUNDLE_EXTRA_PATH)/styles/% build/Carla-Control$(_APP_BUNDLE_EXTRA_PATH)/styles/%: bin/styles/%
-@mkdir -p $(shell dirname $@)
@cp -v $< $@
build/Carla$(_APP_BUNDLE_EXTRA_PATH)/resources/lib: build/Carla$(_APP_BUNDLE_EXTRA_PATH)/lib/library.zip
-@mkdir -p $(shell dirname $@)
@ln -sfv ../lib $@
build/Carla$(_APP_BUNDLE_EXTRA_PATH)/% build/Carla-Control$(_APP_BUNDLE_EXTRA_PATH)/%: bin/%
-@mkdir -p $(shell dirname $@)
@cp -v $< $@
# ---------------------------------------------------------------------------------------------------------------------
# macOS generic bundle files (either Qt or Carla binaries)
build/Carla.app/Contents/MacOS/Qt% build/Carla-Control.app/Contents/MacOS/Qt%: $(QT5_PREFIX)/lib/Qt%.framework
-@mkdir -p $(shell dirname $@)
@cp -v $ $@
build/carla-lv2.pkg: $(_CARLA_LV2_PLUGIN_FILES:%=build/%)
pkgbuild \
--identifier "studio.kx.carla.lv2" \
--install-location "/Library/Audio/Plug-Ins/LV2/carla.lv2/" \
--root "build/carla.lv2/" \
"$@"
build/carla-vst2fx.pkg: $(_CARLA_VST2FX_PLUGIN_FILES:%=build/%)
pkgbuild \
--identifier "studio.kx.carla.vst2fx" \
--install-location "/Library/Audio/Plug-Ins/VST/carlafx.vst/" \
--root "build/carlafx.vst/" \
"$@"
build/carla-vst2syn.pkg: $(_CARLA_VST2SYN_PLUGIN_FILES:%=build/%)
pkgbuild \
--identifier "studio.kx.carla.vst2syn" \
--install-location "/Library/Audio/Plug-Ins/VST/carla.vst/" \
--root "build/carla.vst/" \
"$@"
# ---------------------------------------------------------------------------------------------------------------------
# macOS VST2 specific files
_MACVST_FILES = Contents/Info.plist Contents/PkgInfo Contents/Resources/empty.lproj
build/carla.vst/Contents/MacOS/CarlaVstShell: bin/CarlaVstShell.dylib $(_MACVST_FILES:%=build/carla.vst/%)
-@mkdir -p $(shell dirname $@)
@cp -v $< $@
build/carlafx.vst/Contents/MacOS/CarlaVstFxShell: bin/CarlaVstFxShell.dylib $(_MACVST_FILES:%=build/carlafx.vst/%)
-@mkdir -p $(shell dirname $@)
@cp -v $< $@
# ---------------------------------------------------------------------------------------------------------------------
build/carla.vst/Contents/Info.plist: data/macos/CarlaVstShell.plist
-@mkdir -p $(shell dirname $@)
@cp -v $< $@
build/carlafx.vst/Contents/Info.plist: data/macos/CarlaVstFxShell.plist
-@mkdir -p $(shell dirname $@)
@cp -v $< $@
build/%.vst/Contents/PkgInfo:
-@mkdir -p $(shell dirname $@)
@echo "BNDL????" > $@
build/%.vst/Contents/Resources/empty.lproj:
-@mkdir -p $(shell dirname $@)
@touch $@
# ---------------------------------------------------------------------------------------------------------------------
Carla-2.4.2/Makefile.print.mk 0000664 0000000 0000000 00000015070 14204167543 0015753 0 ustar 00root root 0000000 0000000 #!/usr/bin/make -f
# Makefile for Carla #
# ------------------ #
# Created by falkTX
#
# NOTE to be imported from main Makefile
# ----------------------------------------------------------------------------------------------------------------------------
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 -- "VST2 plugin: $(ANS_YES)\n"
else
@printf -- "VST2 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 -- "VST2 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.8 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)
ifeq ($(USING_JUCE),true)
@printf -- "VST2: $(ANS_YES) (with UI, using JUCE)\n"
@printf -- "VST3: $(ANS_YES) (with UI, using JUCE)\n"
else # USING_JUCE
@printf -- "VST2: $(ANS_YES) (with UI)\n"
@printf -- "VST3: $(ANS_NO)\n"
endif # USING_JUCE
else # MACOS_OR_WIN32
ifeq ($(HAIKU),true)
@printf -- "VST2: $(ANS_YES) (without UI)\n"
@printf -- "VST3: $(ANS_NO)\n"
else # HAIKU
ifeq ($(HAVE_X11),true)
@printf -- "VST2: $(ANS_YES) (with UI)\n"
ifeq ($(USING_JUCE),true)
@printf -- "VST3: $(ANS_YES) (with UI, using JUCE)\n"
else # USING_JUCE
@printf -- "VST3: $(ANS_NO)\n"
endif # USING_JUCE
else # HAVE_X11
@printf -- "VST2: $(ANS_YES) (without UI) $(mS)Missing X11$(mE)\n"
@printf -- "VST3: $(ANS_NO)\n"
endif # HAVE_X11
endif # HAIKU
endif # MACOS_OR_WIN32
ifeq ($(MACOS),true)
ifeq ($(USING_JUCE),true)
@printf -- "AU: $(ANS_YES) (with UI, using JUCE)\n"
else # USING_JUCE
@printf -- "AU: $(ANS_NO)\n"
endif # USING_JUCE
else # MACOS
@printf -- "AU: $(ANS_NO) $(mZ)MacOS only$(mE)\n"
endif # MACOS
@printf -- "\n"
@printf -- "$(tS)---> LV2 UI toolkit support: $(tE)\n"
@printf -- "External: $(ANS_YES) (direct)\n"
@printf -- "Gtk2: $(ANS_YES) (bridge)\n"
@printf -- "Gtk3: $(ANS_YES) (bridge)\n"
ifneq ($(MACOS_OR_WIN32),true)
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 # !MACOS_OR_WIN32
@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 # !MACOS_OR_WIN32
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
@printf -- "MP3: $(ANS_YES)\n"
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_INSTPATCH),true)
# @printf -- "DLS: $(ANS_YES)\n"
# else
# @printf -- "DLS: $(ANS_NO) $(mS)FluidSynth/instpatch missing or too old$(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
# ---------------------------------------------------------------------------------------------------------------------
Carla-2.4.2/README.md 0000664 0000000 0000000 00000002451 14204167543 0014030 0 ustar 00root root 0000000 0000000 #  Carla Plugin Host
[](https://github.com/falkTX/Carla/actions/workflows/build.yml)
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](https://kx.studio/Applications:Carla) also.
Carla-2.4.2/bin/ 0000775 0000000 0000000 00000000000 14204167543 0013317 5 ustar 00root root 0000000 0000000 Carla-2.4.2/bin/carla-bridge-lv2-modgui 0000775 0000000 0000000 00000000176 14204167543 0017550 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.4.2/bin/carla.lv2/ 0000775 0000000 0000000 00000000000 14204167543 0015103 5 ustar 00root root 0000000 0000000 Carla-2.4.2/bin/carla.lv2/resources 0000777 0000000 0000000 00000000000 14204167543 0021203 2../resources ustar 00root root 0000000 0000000 Carla-2.4.2/data/ 0000775 0000000 0000000 00000000000 14204167543 0013460 5 ustar 00root root 0000000 0000000 Carla-2.4.2/data/about.xcf 0000664 0000000 0000000 00001353513 14204167543 0015307 0 ustar 00root root 0000000 0000000 gimp xcf file / ¾ BœBœ "
® 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 <