trommelkiste/Makefile
2026-07-19 11:40:36 +02:00

82 lines
2.4 KiB
Makefile

JUCE := JUCE
NPROC := $(shell sysctl -n hw.ncpu 2>/dev/null || nproc 2>/dev/null || echo 4)
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Darwin)
AU_DIR := $(HOME)/Library/Audio/Plug-Ins/Components
VST3_DIR := $(HOME)/Library/Audio/Plug-Ins/VST3
APP_DIR := /Applications
else
VST3_DIR := $(HOME)/.vst3
endif
BUILD_DIR := build/Trommelkiste_artefacts
.PHONY: all clean install uninstall
install: all
@echo "==> Installing plugins..."
ifeq ($(UNAME_S),Darwin)
@mkdir -p "$(AU_DIR)"
@for f in $$(find $(BUILD_DIR) -name "*.component" -type d); do \
echo " $$f -> $(AU_DIR)/"; \
rm -rf "$(AU_DIR)/$$(basename "$$f")"; \
cp -R "$$f" "$(AU_DIR)/"; \
done
@mkdir -p "$(VST3_DIR)"
@for f in $$(find $(BUILD_DIR) -name "*.vst3" -type d); do \
echo " $$f -> $(VST3_DIR)/"; \
rm -rf "$(VST3_DIR)/$$(basename "$$f")"; \
cp -R "$$f" "$(VST3_DIR)/"; \
done
@mkdir -p "$(APP_DIR)"
@for f in $$(find $(BUILD_DIR) -name "*.app" -type d); do \
echo " $$f -> $(APP_DIR)/"; \
rm -rf "$(APP_DIR)/$$(basename "$$f")"; \
cp -R "$$f" "$(APP_DIR)/"; \
done
else
@mkdir -p "$(VST3_DIR)"
@for f in $$(find $(BUILD_DIR) -name "*.vst3" -type d); do \
echo " $$f -> $(VST3_DIR)/"; \
rm -rf "$(VST3_DIR)/$$(basename "$$f")"; \
cp -R "$$f" "$(VST3_DIR)/"; \
done
endif
@echo "==> Done."
all: build/Makefile
@$(MAKE) --no-print-directory -C build -j$(NPROC)
@echo ""
@echo "Build complete. Output:"
@find $(BUILD_DIR) -type d \( -name "*.vst3" -o -name "*.component" -o -name "*.app" \) 2>/dev/null | while read f; do echo " $$f"; done
build/Makefile: CMakeLists.txt
@if [ ! -d "$(JUCE)" ]; then \
echo "==> Cloning JUCE..."; \
git clone --depth 1 https://github.com/juce-framework/JUCE.git $(JUCE); \
fi
@echo "==> Configuring CMake..."
@cmake -B build -DCMAKE_BUILD_TYPE=Release
uninstall:
@echo "==> Removing installed plugins..."
ifeq ($(UNAME_S),Darwin)
@for f in $$(find $(BUILD_DIR) -name "*.component" -type d 2>/dev/null); do \
rm -rf "$(AU_DIR)/$$(basename "$$f")"; \
done
@for f in $$(find $(BUILD_DIR) -name "*.vst3" -type d 2>/dev/null); do \
rm -rf "$(VST3_DIR)/$$(basename "$$f")"; \
done
@for f in $$(find $(BUILD_DIR) -name "*.app" -type d 2>/dev/null); do \
rm -rf "$(APP_DIR)/$$(basename "$$f")"; \
done
else
@for f in $$(find $(BUILD_DIR) -name "*.vst3" -type d 2>/dev/null); do \
rm -rf "$(VST3_DIR)/$$(basename "$$f")"; \
done
endif
@echo "==> Done."
clean:
rm -rf build