rmx-19/Makefile

84 lines
No EOL
2.8 KiB
Makefile

# RMX-19 build & install Makefile (macOS arm64)
#
# make configure + build VST3 and AU (Release, arm64)
# make install build, codesign (ad-hoc), install into ~/Library/Audio/Plug-Ins,
# strip the quarantine attribute from the installed bundles
# make uninstall remove installed bundles
# make clean delete the CMake build tree
#
# Note: after install, restart (or cold-start) the audio host so macOS rescans
# AudioComponents. A fresh AU/AUv3 may first appear after a host relaunch.
BUILD_DIR ?= build
CONFIG ?= Release
PLUGIN_BASE = RMX-19
CMAKE := cmake
BUILD_DIR_ABSPATH := $(abspath $(BUILD_DIR))
ARTEFACTS := $(BUILD_DIR)/RMX19_artefacts/$(CONFIG)
JUCE_DIR := $(BUILD_DIR)/JUCE
JUCE_REPO := https://github.com/juce-framework/JUCE.git
JUCE_TAG := 8.0.4
VST3_SRC := $(ARTEFACTS)/VST3/$(PLUGIN_BASE).vst3
AU_SRC := $(ARTEFACTS)/AU/$(PLUGIN_BASE).component
VST3_DEST := $(HOME)/Library/Audio/Plug-Ins/VST3/$(PLUGIN_BASE).vst3
AU_DEST := $(HOME)/Library/Audio/Plug-Ins/Components/$(PLUGIN_BASE).component
USER_PLUGIN_DIRS := $(HOME)/Library/Audio/Plug-Ins/VST3 $(HOME)/Library/Audio/Plug-Ins/Components
.EXPORT_ALL_VARIABLES:
CMAKE_BUILD_TYPE := $(CONFIG)
.PHONY: all configure build install uninstall clean info juce
all: build
build: configure
$(CMAKE) --build $(BUILD_DIR) --config $(CONFIG) --parallel
juce:
@if [ ! -d "$(JUCE_DIR)" ]; then \
echo "Fetching JUCE $(JUCE_TAG)..."; \
git clone -c advice.detachedHead=false --branch $(JUCE_TAG) --depth 1 $(JUCE_REPO) $(JUCE_DIR); \
else \
echo "JUCE already present at $(JUCE_DIR)"; \
fi
# Re-run cmake on every invocation: it is cheap when nothing changed and keeps
# the footer's git branch/hash and local build timestamp fresh.
configure: juce
$(CMAKE) -S . -B $(BUILD_DIR) -DCMAKE_BUILD_TYPE=$(CONFIG) -DJUCE_ROOT=$(JUCE_DIR)
install: build
@codesign --force --deep --sign - "$(VST3_SRC)" >/dev/null 2>&1 || true
@codesign --force --deep --sign - "$(AU_SRC)" >/dev/null 2>&1 || true
@mkdir -p $(USER_PLUGIN_DIRS)
@cp -Rf "$(VST3_SRC)" "$(HOME)/Library/Audio/Plug-Ins/VST3/"
@cp -Rf "$(AU_SRC)" "$(HOME)/Library/Audio/Plug-Ins/Components/"
@xattr -dr com.apple.quarantine "$(VST3_DEST)" 2>/dev/null || true
@xattr -dr com.apple.quarantine "$(AU_DEST)" 2>/dev/null || true
@echo "installed:"
@echo " $(VST3_DEST)"
@echo " $(AU_DEST)"
@echo ""
@echo "audiosignature:"
@codesign -dv "$(VST3_DEST)" 2>&1 | head -1
@echo ""
@echo "Restart your DAW / AudioHost to make the AU rescan."
uninstall:
@rm -rf "$(VST3_DEST)" "$(AU_DEST)"
@echo "removed RMX-19 from user Audio Plug-Ins."
clean:
@rm -rf $(BUILD_DIR)
@echo "removed $(BUILD_DIR)."
info:
@echo "BUILD_DIR : $(BUILD_DIR_ABSPATH)"
@echo "CONFIG : $(CONFIG)"
@echo "VST3 : $(VST3_SRC)"
@echo "AU : $(AU_SRC)"