-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
154 lines (127 loc) · 4.24 KB
/
Makefile
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
#!/usr/bin/make -f
# Makefile for DISTRHO Plugins #
# ---------------------------- #
# Created by falkTX, Christopher Arndt, and Patrick Desaulniers
#
# error out if DPF is missing, unless the current rule is 'submodules'
define MISSING_SUBMODULES_ERROR
=============================================================================
DPF library not found in directory 'dpf'.
Please run "make submodules" to clone the missing Git submodules, then retry.
=============================================================================
endef
ifneq ($(MAKECMDGOALS), submodules)
ifeq (,$(wildcard dpf/Makefile.base.mk))
$(info $(MISSING_SUBMODULES_ERROR))
$(error Unable to continue)
else
include dpf/Makefile.base.mk
endif
endif
# --------------------------------------------------------------
# Installation directories
PREFIX ?= /usr/local
BINDIR ?= $(PREFIX)/bin
LIBDIR ?= $(PREFIX)/lib
DSSI_DIR ?= $(LIBDIR)/dssi
LADSPA_DIR ?= $(LIBDIR)/ladspa
ifneq ($(MACOS_OR_WINDOWS),true)
LV2_DIR ?= $(LIBDIR)/lv2
VST2_DIR ?= $(LIBDIR)/vst
VST3_DIR ?= $(LIBDIR)/vst3
CLAP_DIR ?= $(LIBDIR)/clap
endif
ifeq ($(MACOS),true)
LV2_DIR ?= /Library/Audio/Plug-Ins/LV2
VST2_DIR ?= /Library/Audio/Plug-Ins/VST
VST3_DIR ?= /Library/Audio/Plug-Ins/VST3
CLAP_DIR ?= /Library/Audio/Plug-Ins/CLAP
endif
ifeq ($(WINDOWS),true)
LV2_DIR ?= $(COMMONPROGRAMFILES)/LV2
VST2_DIR ?= $(COMMONPROGRAMFILES)/VST2
VST3_DIR ?= $(COMMONPROGRAMFILES)/VST3
CLAP_DIR ?= $(COMMONPROGRAMFILES)/CLAP
endif
USER_DSSI_DIR ?= $(HOME)/.dssi
USER_LADSPA_DIR ?= $(HOME)/.ladspa
ifneq ($(MACOS_OR_WINDOWS),true)
USER_CLAP_DIR ?= $(HOME)/.clap
USER_LV2_DIR ?= $(HOME)/.lv2
USER_VST2_DIR ?= $(HOME)/.vst
USER_VST3_DIR ?= $(HOME)/.vst3
endif
ifeq ($(MACOS),true)
USER_CLAP_DIR ?= $(HOME)/Library/Audio/Plug-Ins/CLAP
USER_LV2_DIR ?= $(HOME)/Library/Audio/Plug-Ins/LV2
USER_VST2_DIR ?= $(HOME)/Library/Audio/Plug-Ins/VST
USER_VST3_DIR ?= $(HOME)/Library/Audio/Plug-Ins/VST3
endif
ifeq ($(WINDOWS),true)
USER_CLAP_DIR ?= $(APPDATA)/CLAP
USER_LV2_DIR ?= $(APPDATA)/LV2
USER_VST2_DIR ?= $(APPDATA)/VST
USER_VST3_DIR ?= $(APPDATA)/VST3
endif
export DESTDIR PREFIX BINDIR LIBDIR
export CLAP_DIR DSSI_DIR LADSPA_DIR LV2_DIR VST2_DIR VST3_DIR
export USER_CLAP_DIR USER_DSSI_DIR USER_LADSPA_DIR USER_LV2_DIR USER_VST2_DIR USER_VST3_DIR
# --------------------------------------------------------------
# Targets
all: libs plugins gen
# --------------------------------------------------------------
PLUGINS = sendmixer
DPF_PATCHES = \
dpf/fix-lv2-version-export.patch \
dpf/no-port-name-lv2-prefix.patch
submodules:
-test -d .git && git submodule update --init --recursive
libs: submodules patch
patch: submodules
@-for p in $(DPF_PATCHES); do \
echo "Applying patch '$${p}'..."; \
patch -d dpf -r - -p1 -N --no-backup-if-mismatch -i ../patches/$${p}; \
done
plugins: $(PLUGINS)
$(PLUGINS):
$(MAKE) all -C plugins/$@
ifneq ($(CROSS_COMPILING),true)
gen: plugins dpf/utils/lv2_ttl_generator
@$(CURDIR)/dpf/utils/generate-ttl.sh
ifeq ($(MACOS),true)
@$(CURDIR)/dpf/utils/generate-vst-bundles.sh
endif
dpf/utils/lv2_ttl_generator:
$(MAKE) -C dpf/utils/lv2-ttl-generator
else
gen: plugins dpf/utils/lv2_ttl_generator.exe
@$(CURDIR)/dpf/utils/generate-ttl.sh
dpf/utils/lv2_ttl_generator.exe:
$(MAKE) -C dpf/utils/lv2-ttl-generator WINDOWS=true
endif
# --------------------------------------------------------------
lv2lint: gen
@echo "Please make sure you have the https://github.com/KXStudio/LV2-Extensions bundles"
@echo "installed somewhere on your LV2_PATH."
@for plug in $(PLUGINS); do \
plugin_uri="$$(grep DISTRHO_PLUGIN_URI plugins/$$plug/DistrhoPluginInfo.h | cut -d '"' -f 2)"; \
lv2lint -Mpack -q -s lv2_generate_ttl -t "Plugin Author Email" \
-I bin/$${plug,,}.lv2/ "$$plugin_uri"; \
done
# --------------------------------------------------------------
clean:
$(MAKE) clean -C dpf/utils/lv2-ttl-generator
@for plug in $(PLUGINS); do \
$(MAKE) clean -C plugins/$${plug}; \
done
rm -rf bin build
install: all
@for plug in $(PLUGINS); do \
$(MAKE) install -C plugins/$${plug}; \
done
install-user: all
@for plug in $(PLUGINS); do \
$(MAKE) install-user -C plugins/$${plug}; \
done
# --------------------------------------------------------------
.PHONY: all clean gen install install-user libs lv2lint patch plugins submodule