-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
64 lines (51 loc) · 2.2 KB
/
Makefile
File metadata and controls
64 lines (51 loc) · 2.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# If RACK_DIR is not defined when calling the Makefile, default to two directories above
RACK_DIR ?= ../Rack-SDK
# FLAGS will be passed to both the C and C++ compiler
FLAGS +=
CFLAGS +=
CXXFLAGS +=
# Careful about linking to shared libraries, since you can't assume much about the user's environment and library search path.
# Static libraries are fine, but they should be added to this plugin's build system.
LDFLAGS +=
# Add .cpp files to the build
SOURCES += $(wildcard src/*.cpp)
# Add files to the ZIP package when running `make dist`
# The compiled plugin and "plugin.json" are automatically added.
DISTRIBUTABLES += res
DISTRIBUTABLES += $(wildcard LICENSE*)
DISTRIBUTABLES += $(wildcard presets)
# Include the Rack plugin Makefile framework
include $(RACK_DIR)/plugin.mk
# Installation directories for VCV Rack 2
PLUGIN_SLUG := $(shell jq -r .slug plugin.json)
ifeq ($(ARCH_OS),mac)
RACK_PLUGINS_DIR ?= $(HOME)/Library/Application Support/Rack2/plugins-mac-$(ARCH_CPU)
else ifeq ($(ARCH_OS),win)
RACK_PLUGINS_DIR ?= $(USERPROFILE)/Documents/Rack2/plugins-win-$(ARCH_CPU)
else
RACK_PLUGINS_DIR ?= $(HOME)/.Rack2/plugins-lin-$(ARCH_CPU)
endif
.PHONY: install
install: dist
mkdir -p "$(RACK_PLUGINS_DIR)"
rm -rf "$(RACK_PLUGINS_DIR)/$(PLUGIN_SLUG)"
cp -r dist/$(PLUGIN_SLUG) "$(RACK_PLUGINS_DIR)/"
@echo "Installed $(PLUGIN_SLUG) to $(RACK_PLUGINS_DIR)"
# Test target: build and run all standalone DSP tests (no Rack SDK dependency)
.PHONY: test test-dsp test-poly test-mod test-user-wt test-panel
test: test-dsp test-poly test-mod test-user-wt test-panel
test-dsp:
g++ -std=c++17 -O2 -I src -o tests/test_dsp_foundation tests/test_dsp_foundation.cpp -lm
./tests/test_dsp_foundation
test-poly:
g++ -std=c++17 -O2 -I src -o tests/test_polyphonic_routing tests/test_polyphonic_routing.cpp -lm
./tests/test_polyphonic_routing
test-mod:
g++ -std=c++17 -O2 -I src -o tests/test_modulation tests/test_modulation.cpp -lm
./tests/test_modulation
test-user-wt:
g++ -std=c++17 -O2 -I src -o tests/test_user_wavetables tests/test_user_wavetables.cpp -lm
./tests/test_user_wavetables
test-panel:
g++ -std=c++17 -O2 -I src -o tests/test_panel_submission tests/test_panel_submission.cpp -lm
./tests/test_panel_submission