# ChromaFlock — Makefile wrapping CMake # Usage: # make — configure (if needed) + build Release # make debug — configure + build Debug # make clean — remove build directory # make rebuild — clean + build Release # make install — build + copy plugins to system dirs # make run — build Standalone and launch # make help — show help BUILD_DIR := build BUILD_TYPE := Release CMAKE_FLAGS := -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) UNAME_S := $(shell uname -s) # Platform-aware CPU count ifeq ($(UNAME_S),Darwin) JOBS := $(shell sysctl -n hw.ncpu 2>/dev/null || echo 4) else JOBS := $(shell nproc 2>/dev/null || echo 4) endif # Artefact paths VST3 := $(BUILD_DIR)/ChromaFlock_artefacts/$(BUILD_TYPE)/VST3/ChromaFlock.vst3 ifeq ($(UNAME_S),Darwin) APP := $(BUILD_DIR)/ChromaFlock_artefacts/$(BUILD_TYPE)/Standalone/ChromaFlock.app else APP := $(BUILD_DIR)/ChromaFlock_artefacts/$(BUILD_TYPE)/Standalone/ChromaFlock endif .PHONY: all debug release clean rebuild configure install run help all: release release: $(VST3) debug: @cmake -B $(BUILD_DIR) -DCMAKE_BUILD_TYPE=Debug $(CMAKE_FLAGS) @cmake --build $(BUILD_DIR) --config Debug -j$(JOBS) $(VST3): @cmake -B $(BUILD_DIR) $(CMAKE_FLAGS) @cmake --build $(BUILD_DIR) --config $(BUILD_TYPE) -j$(JOBS) configure: @cmake -B $(BUILD_DIR) $(CMAKE_FLAGS) clean: @rm -rvf $(BUILD_DIR) rebuild: clean all install: all ifeq ($(UNAME_S),Darwin) @echo "Plugins were copied to system folders by CMAKE_COPY_PLUGIN_AFTER_BUILD." @echo "VST3: ~/Library/Audio/Plug-Ins/VST3/" @echo "AU: ~/Library/Audio/Plug-Ins/Components/" else ifeq ($(UNAME_S),Linux) @mkdir -p ~/.vst3 @cp -r $(BUILD_DIR)/ChromaFlock_artefacts/$(BUILD_TYPE)/VST3/ChromaFlock.vst3 ~/.vst3/ @echo "Installed ChromaFlock.vst3 to ~/.vst3/" else @echo "Install paths unknown for this platform." endif run: $(APP) ifeq ($(UNAME_S),Darwin) open "$(APP)" else "$(APP)" & endif help: @echo "ChromaFlock Makefile" @echo "" @echo " make — Build Release (VST3/Standalone)" @echo " make debug — Build Debug" @echo " make clean — Remove build/" @echo " make rebuild — Clean + Build Release" @echo " make configure — Run CMake configure only" @echo " make install — Install VST3 to system dir" @echo " make run — Build and launch Standalone app" @echo " make help — This message"