mirror of
https://codeberg.org/armin/mindball.git
synced 2026-09-01 03:40:49 +02:00
71 lines
2.1 KiB
Makefile
71 lines
2.1 KiB
Makefile
|
|
# Mindball - CMake convenience wrapper
|
||
|
|
#
|
||
|
|
# make configure and build all plugin formats (AU VST3 Standalone)
|
||
|
|
# make install build, then copy the plugins to the standard locations
|
||
|
|
# make clean remove the build directory
|
||
|
|
#
|
||
|
|
# Overrides (as make variables):
|
||
|
|
# make BUILD_TYPE=Debug
|
||
|
|
# make FORMATS="VST3 LV2"
|
||
|
|
# make CMAKE_ARGS="-DJUCE_ROOT=/path/to/juce"
|
||
|
|
#
|
||
|
|
# Requires: CMake >= 3.22 and a C++20 compiler. JUCE 8.0.9 is fetched on the
|
||
|
|
# first configure (or use CMAKE_ARGS="-DJUCE_ROOT=/path/to/juce").
|
||
|
|
|
||
|
|
BUILD_DIR ?= build
|
||
|
|
BUILD_TYPE ?= Release
|
||
|
|
FORMATS ?= AU VST3 Standalone
|
||
|
|
CMAKE ?= cmake
|
||
|
|
CMAKE_ARGS ?=
|
||
|
|
JOBS ?= $(shell sysctl -n hw.ncpu 2>/dev/null || nproc 2>/dev/null || echo 4)
|
||
|
|
|
||
|
|
UNAME_S := $(shell uname -s)
|
||
|
|
|
||
|
|
ifeq ($(UNAME_S),Darwin)
|
||
|
|
VST3_DIR ?= $(HOME)/Library/Audio/Plug-Ins/VST3
|
||
|
|
AU_DIR ?= $(HOME)/Library/Audio/Plug-Ins/Components
|
||
|
|
APP_DIR ?= $(HOME)/Applications
|
||
|
|
else
|
||
|
|
VST3_DIR ?= $(HOME)/.vst3
|
||
|
|
AU_DIR ?=
|
||
|
|
APP_DIR ?= $(HOME)/Applications
|
||
|
|
endif
|
||
|
|
|
||
|
|
TARGETS := $(foreach f,$(FORMATS),Mindball_$(f))
|
||
|
|
ARTEFACT = $(BUILD_DIR)/Mindball_artefacts/$(BUILD_TYPE)
|
||
|
|
|
||
|
|
.PHONY: all configure build install clean
|
||
|
|
|
||
|
|
all: build
|
||
|
|
|
||
|
|
configure:
|
||
|
|
$(CMAKE) -B $(BUILD_DIR) -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DMINDBALL_FORMATS="$(FORMATS)" $(CMAKE_ARGS)
|
||
|
|
|
||
|
|
build: configure
|
||
|
|
$(CMAKE) --build $(BUILD_DIR) -j$(JOBS) --target $(TARGETS)
|
||
|
|
|
||
|
|
install: build
|
||
|
|
@for f in $(FORMATS); do \
|
||
|
|
case "$$f" in \
|
||
|
|
VST3) \
|
||
|
|
mkdir -p "$(VST3_DIR)" && \
|
||
|
|
rm -rf "$(VST3_DIR)/Mindball.vst3" && \
|
||
|
|
cp -R "$(ARTEFACT)/VST3/Mindball.vst3" "$(VST3_DIR)/" && \
|
||
|
|
echo "Installed: $(VST3_DIR)/Mindball.vst3" ;; \
|
||
|
|
AU) \
|
||
|
|
if [ -n "$(AU_DIR)" ]; then \
|
||
|
|
mkdir -p "$(AU_DIR)" && \
|
||
|
|
rm -rf "$(AU_DIR)/Mindball.component" && \
|
||
|
|
cp -R "$(ARTEFACT)/AU/Mindball.component" "$(AU_DIR)/" && \
|
||
|
|
echo "Installed: $(AU_DIR)/Mindball.component"; \
|
||
|
|
fi ;; \
|
||
|
|
Standalone) \
|
||
|
|
mkdir -p "$(APP_DIR)" && \
|
||
|
|
rm -rf "$(APP_DIR)/Mindball.app" && \
|
||
|
|
cp -R "$(ARTEFACT)/Standalone/Mindball.app" "$(APP_DIR)/" && \
|
||
|
|
echo "Installed: $(APP_DIR)/Mindball.app" ;; \
|
||
|
|
esac; \
|
||
|
|
done
|
||
|
|
|
||
|
|
clean:
|
||
|
|
rm -rf $(BUILD_DIR)
|