diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 98ae4d4..a97afee 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -122,6 +122,7 @@ jobs: sudo dpkg --add-architecture i386 sudo apt-get update -qq sudo apt-get install -yqq g++-i686-linux-gnu libasound2-dev:i386 libdbus-1-dev:i386 libgl1-mesa-dev:i386 libglib2.0-dev:i386 libx11-dev:i386 libxcursor-dev:i386 libxext-dev:i386 libxrandr-dev:i386 + sudo apt-get install -yqq binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 wine-stable wine64-tools - name: Build extra dependencies run: | git clone --depth=1 https://github.com/DISTRHO/PawPaw.git @@ -131,6 +132,7 @@ jobs: pushd PawPaw; source local.env linux-i686; popd make features make NOOPT=true WITH_LTO=true -j $(nproc) + make WITH_LTO=true extra -j $(nproc) - name: Set sha8 id: slug run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)" @@ -197,10 +199,18 @@ jobs: path: | ~/PawPawBuilds key: linux-x86_64-v${{ env.CACHE_VERSION }} + - 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 libgd3/focal libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal + sudo apt-get purge -yqq libclang* libgbm* libllvm* libmono* moby* mono* php* libgdiplus libpcre2-posix3 libzip4 - name: Set up dependencies run: | sudo apt-get update -qq sudo apt-get install -yqq libasound2-dev libdbus-1-dev libgl1-mesa-dev libglib2.0-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev + sudo apt-get install -yqq g++-multilib libx11-dev:i386 + sudo apt-get install -yqq binutils-mingw-w64-i686 binutils-mingw-w64-x86-64 g++-mingw-w64-i686 g++-mingw-w64-x86-64 mingw-w64 wine-stable wine64-tools - name: Build extra dependencies run: | git clone --depth=1 https://github.com/DISTRHO/PawPaw.git @@ -210,6 +220,7 @@ jobs: pushd PawPaw; source local.env linux; popd make features make NOOPT=true WITH_LTO=true -j $(nproc) + make WITH_LTO=true extra -j $(nproc) - name: Set sha8 id: slug run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)" diff --git a/Makefile b/Makefile index 6bde158..87e2801 100644 --- a/Makefile +++ b/Makefile @@ -42,11 +42,29 @@ CARLA_EXTRA_ARGS += EXTERNAL_PLUGINS=true endif CARLA_TARGETS = static-plugin +CARLA_EXTRA_TARGETS = ifneq ($(USE_SYSTEM_CARLA_BINS),true) CARLA_TARGETS += bridges-plugin bridges-ui endif +ifeq ($(CPU_X86_64),true) +ifeq ($(WINDOWS),true) +CARLA_EXTRA_TARGETS += win32 +else ifneq ($(MACOS),true) +CARLA_EXTRA_TARGETS += posix32 +endif +endif + +ifeq ($(CPU_I386_OR_X86_64),true) +ifeq ($(LINUX),true) +CARLA_EXTRA_TARGETS += wine32 +ifeq ($(CPU_X86_64),true) +CARLA_EXTRA_TARGETS += wine64 +endif +endif +endif + # --------------------------------------------------------------------------------------------------------------------- # DPF bundled plugins @@ -84,6 +102,18 @@ endif carla: dgl $(MAKE) $(CARLA_EXTRA_ARGS) -C carla $(CARLA_TARGETS) +extra: carla + $(MAKE) $(CARLA_EXTRA_ARGS) -C carla $(CARLA_EXTRA_TARGETS) +ifeq ($(CPU_I386_OR_X86_64),true) +ifeq ($(LINUX),true) + $(MAKE) $(CARLA_EXTRA_ARGS) -C carla win32 AR=i686-w64-mingw32-ar CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ +ifeq ($(CPU_X86_64),true) + $(MAKE) $(CARLA_EXTRA_ARGS) -C carla win64 AR=x86_64-w64-mingw32-ar CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ +endif +endif +endif + $(MAKE) plugins CARLA_EXTRA_BINARIES=true + dgl: $(MAKE) -C dpf/dgl opengl diff --git a/carla b/carla index df13388..c2bd7cf 160000 --- a/carla +++ b/carla @@ -1 +1 @@ -Subproject commit df1338860e0b6fae36b974618ecfeb005051158b +Subproject commit c2bd7cf63c0776cc04d834fb95a49c7ce8968b7c diff --git a/plugins/Common/Makefile.mk b/plugins/Common/Makefile.mk index f0bfcdc..7c97be8 100644 --- a/plugins/Common/Makefile.mk +++ b/plugins/Common/Makefile.mk @@ -99,14 +99,19 @@ endif # Enable all possible plugin types ifeq ($(WASM),true) + TARGETS_EXTRA = jack + else + TARGETS_BASE = lv2 vst2 clap +TARGETS_EXTRA = jack carlabins + # VST3 does not do MIDI filter plugins, by design ifneq ($(NAME),Ildaeil-MIDI) TARGETS_BASE += vst3 endif -TARGETS_EXTRA = jack carlabins + endif all: $(TARGETS_BASE) $(TARGETS_EXTRA) @@ -115,10 +120,36 @@ all: $(TARGETS_BASE) $(TARGETS_EXTRA) # special step for carla binaries ifneq ($(USE_SYSTEM_CARLA_BINS),true) + CARLA_BINARIES = $(CURDIR)/../../carla/bin/carla-bridge-native$(APP_EXT) CARLA_BINARIES += $(CURDIR)/../../carla/bin/carla-bridge-lv2-gtk2$(APP_EXT) CARLA_BINARIES += $(CURDIR)/../../carla/bin/carla-bridge-lv2-gtk3$(APP_EXT) +ifeq ($(CARLA_EXTRA_BINARIES),true) + +# 32bit bridge +ifeq ($(CPU_X86_64),true) +ifeq ($(WINDOWS),true) +CARLA_BINARIES += $(CURDIR)/../../carla/bin/carla-bridge-win32$(APP_EXT) +else ifneq ($(MACOS),true) +CARLA_BINARIES += $(CURDIR)/../../carla/bin/carla-bridge-posix32$(APP_EXT) +endif +endif + +# Windows bridges +ifeq ($(CPU_I386_OR_X86_64),true) +ifeq ($(LINUX),true) +CARLA_BINARIES += $(CURDIR)/../../carla/bin/carla-bridge-win32.exe +CARLA_BINARIES += $(CURDIR)/../../carla/bin/jackbridge-wine32.dll +ifeq ($(CPU_X86_64),true) +CARLA_BINARIES += $(CURDIR)/../../carla/bin/carla-bridge-win64.exe +CARLA_BINARIES += $(CURDIR)/../../carla/bin/jackbridge-wine64.dll +endif +endif +endif + +endif # CARLA_EXTRA_BINARIES + carlabins: $(TARGETS_BASE) install -m 755 $(CARLA_BINARIES) $(shell dirname $(lv2)) install -m 755 $(CARLA_BINARIES) $(shell dirname $(vst2)) @@ -126,8 +157,11 @@ carlabins: $(TARGETS_BASE) ifneq ($(NAME),Ildaeil-MIDI) install -m 755 $(CARLA_BINARIES) $(shell dirname $(vst3)) endif -else + +else # USE_SYSTEM_CARLA_BINS + carlabins: -endif + +endif # USE_SYSTEM_CARLA_BINS # --------------------------------------------------------------