@@ -11,6 +11,5 @@ | |||||
.kdev_include_paths | .kdev_include_paths | ||||
.kdev4/ | .kdev4/ | ||||
bin/*-dssi/ | |||||
bin/*.lv2/ | |||||
bin/Kars | |||||
bin/ | |||||
build/ |
@@ -1,3 +1,3 @@ | |||||
[submodule "dpf"] | [submodule "dpf"] | ||||
path = dpf | path = dpf | ||||
url = git://github.com/DISTRHO/DPF | |||||
url = https://github.com/DISTRHO/DPF |
@@ -4,24 +4,16 @@ | |||||
# Created by falkTX | # Created by falkTX | ||||
# | # | ||||
include Makefile.mk | |||||
include dpf/Makefile.base.mk | |||||
all: libs plugins modguis gen | |||||
all: plugins gen | |||||
# -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
libs: | |||||
ifeq ($(HAVE_DGL),true) | |||||
$(MAKE) -C dpf/dgl | |||||
endif | |||||
plugins: libs | |||||
plugins: | |||||
$(MAKE) all -C plugins/Kars | $(MAKE) all -C plugins/Kars | ||||
modguis: plugins | |||||
cp -r modguis/Kars.modgui/modgui bin/Kars.lv2/ | |||||
cp modguis/Kars.modgui/manifest.ttl bin/Kars.lv2/modgui.ttl | |||||
ifneq ($(CROSS_COMPILING),true) | |||||
gen: plugins dpf/utils/lv2_ttl_generator | gen: plugins dpf/utils/lv2_ttl_generator | ||||
@$(CURDIR)/dpf/utils/generate-ttl.sh | @$(CURDIR)/dpf/utils/generate-ttl.sh | ||||
ifeq ($(MACOS),true) | ifeq ($(MACOS),true) | ||||
@@ -30,15 +22,16 @@ endif | |||||
dpf/utils/lv2_ttl_generator: | dpf/utils/lv2_ttl_generator: | ||||
$(MAKE) -C dpf/utils/lv2-ttl-generator | $(MAKE) -C dpf/utils/lv2-ttl-generator | ||||
else | |||||
gen: | |||||
endif | |||||
# -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
clean: | clean: | ||||
ifeq ($(HAVE_DGL),true) | |||||
$(MAKE) clean -C dpf/dgl | |||||
endif | |||||
$(MAKE) clean -C dpf/utils/lv2-ttl-generator | $(MAKE) clean -C dpf/utils/lv2-ttl-generator | ||||
$(MAKE) clean -C plugins/Kars | $(MAKE) clean -C plugins/Kars | ||||
rm -rf bin build | |||||
# -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
@@ -1,150 +0,0 @@ | |||||
#!/usr/bin/make -f | |||||
# Makefile for DISTRHO Plugins # | |||||
# ---------------------------- # | |||||
# Created by falkTX | |||||
# | |||||
AR ?= ar | |||||
CC ?= gcc | |||||
CXX ?= g++ | |||||
# -------------------------------------------------------------- | |||||
# Fallback to Linux if no other OS defined | |||||
ifneq ($(HAIKU),true) | |||||
ifneq ($(MACOS),true) | |||||
ifneq ($(WIN32),true) | |||||
LINUX=true | |||||
endif | |||||
endif | |||||
endif | |||||
# -------------------------------------------------------------- | |||||
# Set build and link flags | |||||
BASE_FLAGS = -Wall -Wextra -pipe | |||||
BASE_OPTS = -O2 -ffast-math -mtune=generic -msse -msse2 -fdata-sections -ffunction-sections | |||||
ifneq ($(MACOS),true) | |||||
# MacOS doesn't support this | |||||
BASE_OPTS += -mfpmath=sse | |||||
endif | |||||
ifeq ($(MACOS),true) | |||||
# MacOS linker flags | |||||
LINK_OPTS = -fdata-sections -ffunction-sections -Wl,-dead_strip -Wl,-dead_strip_dylibs | |||||
else | |||||
# Common linker flags | |||||
LINK_OPTS = -fdata-sections -ffunction-sections -Wl,--gc-sections -Wl,-O1 -Wl,--as-needed | |||||
ifneq ($(SKIP_STRIPPING),true) | |||||
LINK_OPTS += -Wl,--strip-all | |||||
endif | |||||
endif | |||||
ifeq ($(RASPPI),true) | |||||
# Raspberry-Pi optimization flags | |||||
BASE_OPTS = -O2 -ffast-math -march=armv6 -mfpu=vfp -mfloat-abi=hard | |||||
LINK_OPTS = -Wl,-O1 -Wl,--as-needed -Wl,--strip-all | |||||
endif | |||||
ifeq ($(PANDORA),true) | |||||
# OpenPandora optimization flags | |||||
BASE_OPTS = -O2 -ffast-math -march=armv7-a -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp | |||||
LINK_OPTS = -Wl,-O1 -Wl,--as-needed -Wl,--strip-all | |||||
endif | |||||
ifeq ($(NOOPT),true) | |||||
# No optimization flags | |||||
BASE_OPTS = -O2 -ffast-math -fdata-sections -ffunction-sections | |||||
endif | |||||
ifneq ($(WIN32),true) | |||||
# not needed for Windows | |||||
BASE_FLAGS += -fPIC -DPIC | |||||
endif | |||||
ifeq ($(DEBUG),true) | |||||
BASE_FLAGS += -DDEBUG -O0 -g | |||||
LINK_OPTS = | |||||
else | |||||
BASE_FLAGS += -DNDEBUG $(BASE_OPTS) -fvisibility=hidden | |||||
CXXFLAGS += -fvisibility-inlines-hidden | |||||
endif | |||||
BUILD_C_FLAGS = $(BASE_FLAGS) -std=c99 -std=gnu99 $(CFLAGS) | |||||
BUILD_CXX_FLAGS = $(BASE_FLAGS) -std=c++0x -std=gnu++0x $(CXXFLAGS) $(CPPFLAGS) | |||||
LINK_FLAGS = $(LINK_OPTS) -Wl,--no-undefined $(LDFLAGS) | |||||
ifeq ($(MACOS),true) | |||||
# No C++11 support | |||||
BUILD_CXX_FLAGS = $(BASE_FLAGS) $(CXXFLAGS) $(CPPFLAGS) | |||||
LINK_FLAGS = $(LINK_OPTS) $(LDFLAGS) | |||||
endif | |||||
# -------------------------------------------------------------- | |||||
# Check for optional libs | |||||
ifeq ($(LINUX),true) | |||||
HAVE_DGL = $(shell pkg-config --exists gl x11 && echo true) | |||||
HAVE_JACK = $(shell pkg-config --exists jack && echo true) | |||||
HAVE_LIBLO = $(shell pkg-config --exists liblo && echo true) | |||||
endif | |||||
ifeq ($(MACOS),true) | |||||
HAVE_DGL = true | |||||
endif | |||||
ifeq ($(WIN32),true) | |||||
HAVE_DGL = true | |||||
endif | |||||
# -------------------------------------------------------------- | |||||
# Set libs stuff | |||||
ifeq ($(HAVE_DGL),true) | |||||
ifeq ($(LINUX),true) | |||||
DGL_FLAGS = $(shell pkg-config --cflags gl x11) | |||||
DGL_LIBS = $(shell pkg-config --libs gl x11) | |||||
endif | |||||
ifeq ($(MACOS),true) | |||||
DGL_LIBS = -framework OpenGL -framework Cocoa | |||||
endif | |||||
ifeq ($(WIN32),true) | |||||
DGL_LIBS = -lopengl32 -lgdi32 | |||||
endif | |||||
endif # HAVE_DGL | |||||
# -------------------------------------------------------------- | |||||
# Set app extension | |||||
ifeq ($(WIN32),true) | |||||
APP_EXT = .exe | |||||
endif | |||||
# -------------------------------------------------------------- | |||||
# Set shared lib extension | |||||
LIB_EXT = .so | |||||
ifeq ($(MACOS),true) | |||||
LIB_EXT = .dylib | |||||
endif | |||||
ifeq ($(WIN32),true) | |||||
LIB_EXT = .dll | |||||
endif | |||||
# -------------------------------------------------------------- | |||||
# Set shared library CLI arg | |||||
SHARED = -shared | |||||
ifeq ($(MACOS),true) | |||||
SHARED = -dynamiclib | |||||
endif | |||||
# -------------------------------------------------------------- |
@@ -1,3 +0,0 @@ | |||||
All final plugin builds will be placed in this folder. | |||||
There is no "make install" process, simply copy those files to their appropriate place. |
@@ -1 +1 @@ | |||||
Subproject commit c3a3ee004eb5427067488f425540ba54336e4d38 | |||||
Subproject commit ea7545a13ab9793b5608b13a82f1ad9cf9ec5e98 |
@@ -1,21 +0,0 @@ | |||||
@prefix modgui: <http://moddevices.com/ns/modgui#> . | |||||
@prefix lv2: <http://lv2plug.in/ns/lv2core#> . | |||||
<http://distrho.sf.net/plugins/Kars> | |||||
modgui:gui [ | |||||
modgui:resourcesDirectory <modgui> ; | |||||
modgui:iconTemplate <modgui/icon-kars.html> ; | |||||
modgui:stylesheet <modgui/stylesheet-kars.css> ; | |||||
modgui:screenshot <modgui/screenshot-kars.png> ; | |||||
modgui:thumbnail <modgui/thumbnail-kars.png> ; | |||||
modgui:brand "DISTRHO" ; | |||||
modgui:label "Kars" ; | |||||
modgui:model "boxy-small" ; | |||||
modgui:panel "1-footswitch" ; | |||||
modgui:color "yellow" ; | |||||
modgui:port [ | |||||
lv2:index 0 ; | |||||
lv2:symbol "sustain" ; | |||||
lv2:name "Sustain" ; | |||||
] ; | |||||
] . |
@@ -1,41 +0,0 @@ | |||||
<div class="mod-pedal mod-pedal-boxy{{{cns}}} mod-boxy50 mod-one-footswitch mod-{{color}} {{color}}"> | |||||
<div mod-role="drag-handle" class="mod-drag-handle"></div> | |||||
<div class="mod-plugin-brand"><h1>{{brand}}</h1></div> | |||||
<div class="mod-plugin-name"><h1>{{label}}</h1></div> | |||||
<div class="mod-light on" mod-role="bypass-light"></div> | |||||
<div class="mod-footswitch" mod-role="bypass"></div> | |||||
<div class="mod-pedal-input"> | |||||
{{#effect.ports.audio.input}} | |||||
<div class="mod-input mod-input-disconnected" title="{{name}}" mod-role="input-audio-port" mod-port-symbol="{{symbol}}"> | |||||
<div class="mod-pedal-input-image"></div> | |||||
</div> | |||||
{{/effect.ports.audio.input}} | |||||
{{#effect.ports.midi.input}} | |||||
<div class="mod-input mod-input-disconnected" title="{{name}}" mod-role="input-midi-port" mod-port-symbol="{{symbol}}"> | |||||
<div class="mod-pedal-input-image"></div> | |||||
</div> | |||||
{{/effect.ports.midi.input}} | |||||
{{#effect.ports.cv.input}} | |||||
<div class="mod-input mod-input-disconnected" title="{{name}}" mod-role="input-cv-port" mod-port-symbol="{{symbol}}"> | |||||
<div class="mod-pedal-input-image"></div> | |||||
</div> | |||||
{{/effect.ports.cv.input}} | |||||
</div> | |||||
<div class="mod-pedal-output"> | |||||
{{#effect.ports.audio.output}} | |||||
<div class="mod-output mod-output-disconnected" title="{{name}}" mod-role="output-audio-port" mod-port-symbol="{{symbol}}"> | |||||
<div class="mod-pedal-output-image"></div> | |||||
</div> | |||||
{{/effect.ports.audio.output}} | |||||
{{#effect.ports.midi.output}} | |||||
<div class="mod-output mod-output-disconnected" title="{{name}}" mod-role="output-midi-port" mod-port-symbol="{{symbol}}"> | |||||
<div class="mod-pedal-output-image"></div> | |||||
</div> | |||||
{{/effect.ports.midi.output}} | |||||
{{#effect.ports.cv.output}} | |||||
<div class="mod-output mod-output-disconnected" title="{{name}}" mod-role="output-cv-port" mod-port-symbol="{{symbol}}"> | |||||
<div class="mod-pedal-output-image"></div> | |||||
</div> | |||||
{{/effect.ports.cv.output}} | |||||
</div> | |||||
</div> |
@@ -1,20 +0,0 @@ | |||||
/* (Auto-generated binary data file). */ | |||||
#ifndef BINARY_DISTRHOARTWORKKARS_HPP | |||||
#define BINARY_DISTRHOARTWORKKARS_HPP | |||||
namespace DistrhoArtworkKars | |||||
{ | |||||
extern const char* backgroundData; | |||||
const unsigned int backgroundDataSize = 379260; | |||||
const unsigned int backgroundWidth = 301; | |||||
const unsigned int backgroundHeight = 315; | |||||
extern const char* switchData; | |||||
const unsigned int switchDataSize = 61952; | |||||
const unsigned int switchWidth = 88; | |||||
const unsigned int switchHeight = 176; | |||||
} | |||||
#endif // BINARY_DISTRHOARTWORKKARS_HPP | |||||
@@ -21,11 +21,10 @@ | |||||
#define DISTRHO_PLUGIN_NAME "Kars" | #define DISTRHO_PLUGIN_NAME "Kars" | ||||
#define DISTRHO_PLUGIN_URI "http://distrho.sf.net/plugins/Kars" | #define DISTRHO_PLUGIN_URI "http://distrho.sf.net/plugins/Kars" | ||||
#define DISTRHO_PLUGIN_HAS_UI 1 | |||||
#define DISTRHO_PLUGIN_HAS_UI 0 | |||||
#define DISTRHO_PLUGIN_IS_RT_SAFE 1 | #define DISTRHO_PLUGIN_IS_RT_SAFE 1 | ||||
#define DISTRHO_PLUGIN_IS_SYNTH 1 | #define DISTRHO_PLUGIN_IS_SYNTH 1 | ||||
#define DISTRHO_PLUGIN_NUM_INPUTS 0 | #define DISTRHO_PLUGIN_NUM_INPUTS 0 | ||||
#define DISTRHO_PLUGIN_NUM_OUTPUTS 1 | #define DISTRHO_PLUGIN_NUM_OUTPUTS 1 | ||||
#define DISTRHO_PLUGIN_USES_MODGUI 1 | |||||
#endif // DISTRHO_PLUGIN_INFO_H_INCLUDED | #endif // DISTRHO_PLUGIN_INFO_H_INCLUDED |
@@ -1,77 +0,0 @@ | |||||
/* | |||||
* DISTRHO Kars Plugin, based on karplong by Chris Cannam. | |||||
* Copyright (C) 2015 Filipe Coelho <falktx@falktx.com> | |||||
* | |||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | |||||
* or without fee is hereby granted, provided that the above copyright notice and this | |||||
* permission notice appear in all copies. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD | |||||
* TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN | |||||
* NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL | |||||
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER | |||||
* IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN | |||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |||||
*/ | |||||
#include "DistrhoPluginKars.hpp" | |||||
#include "DistrhoUIKars.hpp" | |||||
START_NAMESPACE_DISTRHO | |||||
namespace Art = DistrhoArtworkKars; | |||||
// ----------------------------------------------------------------------- | |||||
DistrhoUIKars::DistrhoUIKars() | |||||
: UI(Art::backgroundWidth, Art::backgroundHeight), | |||||
fImgBackground(Art::backgroundData, Art::backgroundWidth, Art::backgroundHeight) | |||||
{ | |||||
// sustain switch | |||||
Image switchImageNormal(Art::switchData, Art::switchWidth, Art::switchHeight/2); | |||||
Image switchImageDown(Art::switchData+(Art::switchWidth*Art::switchHeight/2*4), Art::switchWidth, Art::switchHeight/2); | |||||
fSwitchSustain = new ImageSwitch(this, switchImageNormal, switchImageDown); | |||||
fSwitchSustain->setAbsolutePos(Art::backgroundWidth/2-Art::switchWidth/2, Art::backgroundHeight/2-Art::switchHeight/4); | |||||
fSwitchSustain->setId(DistrhoPluginKars::paramSustain); | |||||
fSwitchSustain->setCallback(this); | |||||
} | |||||
// ----------------------------------------------------------------------- | |||||
// DSP Callbacks | |||||
void DistrhoUIKars::parameterChanged(uint32_t index, float value) | |||||
{ | |||||
if (index != 0) | |||||
return; | |||||
fSwitchSustain->setDown(value > 0.5f); | |||||
} | |||||
// ----------------------------------------------------------------------- | |||||
// Widget Callbacks | |||||
void DistrhoUIKars::imageSwitchClicked(ImageSwitch* imageSwitch, bool down) | |||||
{ | |||||
if (imageSwitch != fSwitchSustain) | |||||
return; | |||||
editParameter(DistrhoPluginKars::paramSustain, true); | |||||
setParameterValue(DistrhoPluginKars::paramSustain, down ? 1.0f : 0.0f); | |||||
editParameter(DistrhoPluginKars::paramSustain, false); | |||||
} | |||||
void DistrhoUIKars::onDisplay() | |||||
{ | |||||
fImgBackground.draw(); | |||||
} | |||||
// ----------------------------------------------------------------------- | |||||
UI* createUI() | |||||
{ | |||||
return new DistrhoUIKars(); | |||||
} | |||||
// ----------------------------------------------------------------------- | |||||
END_NAMESPACE_DISTRHO |
@@ -1,60 +0,0 @@ | |||||
/* | |||||
* DISTRHO Kars Plugin, based on karplong by Chris Cannam. | |||||
* Copyright (C) 2015 Filipe Coelho <falktx@falktx.com> | |||||
* | |||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | |||||
* or without fee is hereby granted, provided that the above copyright notice and this | |||||
* permission notice appear in all copies. | |||||
* | |||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD | |||||
* TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN | |||||
* NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL | |||||
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER | |||||
* IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN | |||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |||||
*/ | |||||
#ifndef DISTRHO_UI_KARS_HPP_INCLUDED | |||||
#define DISTRHO_UI_KARS_HPP_INCLUDED | |||||
#include "DistrhoUI.hpp" | |||||
#include "ImageWidgets.hpp" | |||||
#include "DistrhoArtworkKars.hpp" | |||||
START_NAMESPACE_DISTRHO | |||||
// ----------------------------------------------------------------------- | |||||
class DistrhoUIKars : public UI, | |||||
public ImageSwitch::Callback | |||||
{ | |||||
public: | |||||
DistrhoUIKars(); | |||||
protected: | |||||
// ------------------------------------------------------------------- | |||||
// DSP Callbacks | |||||
void parameterChanged(uint32_t index, float value) override; | |||||
// ------------------------------------------------------------------- | |||||
// Widget Callbacks | |||||
void imageSwitchClicked(ImageSwitch* imageSwitch, bool down) override; | |||||
void onDisplay() override; | |||||
private: | |||||
Image fImgBackground; | |||||
ScopedPointer<ImageSwitch> fSwitchSustain; | |||||
DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(DistrhoUIKars) | |||||
}; | |||||
// ----------------------------------------------------------------------- | |||||
END_NAMESPACE_DISTRHO | |||||
#endif // DISTRHO_UI_KARS_HPP_INCLUDED |
@@ -12,47 +12,24 @@ NAME = Kars | |||||
# -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
# Files to build | # Files to build | ||||
OBJS_DSP = \ | |||||
DistrhoPluginKars.cpp.o | |||||
OBJS_UI = \ | |||||
DistrhoArtworkKars.cpp.o \ | |||||
DistrhoUIKars.cpp.o | |||||
FILES_DSP = \ | |||||
DistrhoPluginKars.cpp | |||||
# -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
# Do some magic | # Do some magic | ||||
include ../Makefile.mk | |||||
include ../../dpf/Makefile.plugins.mk | |||||
# -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
# Enable all possible plugin types | # Enable all possible plugin types | ||||
ifeq ($(BUILD_JACK),true) | |||||
ifeq ($(HAVE_JACK),true) | ifeq ($(HAVE_JACK),true) | ||||
TARGETS += jack | TARGETS += jack | ||||
endif | endif | ||||
endif | |||||
ifeq ($(BUILD_DSSI),true) | |||||
TARGETS += dssi_dsp | TARGETS += dssi_dsp | ||||
ifeq ($(HAVE_DGL),true) | |||||
ifeq ($(HAVE_LIBLO),true) | |||||
TARGETS += dssi_ui | |||||
endif | |||||
endif | |||||
endif | |||||
ifeq ($(BUILD_LV2),true) | |||||
ifeq ($(HAVE_DGL),true) | |||||
TARGETS += lv2_sep | TARGETS += lv2_sep | ||||
else | |||||
TARGETS += lv2_dsp | |||||
endif | |||||
endif | |||||
ifeq ($(BUILD_VST2),true) | |||||
TARGETS += vst | TARGETS += vst | ||||
endif | |||||
all: $(TARGETS) | all: $(TARGETS) | ||||
@@ -1,163 +0,0 @@ | |||||
#!/usr/bin/make -f | |||||
# Makefile for DISTRHO Plugins # | |||||
# ---------------------------- # | |||||
# Created by falkTX | |||||
# | |||||
# NAME, OBJS_DSP and OBJS_UI have been defined before | |||||
include ../../Makefile.mk | |||||
ifeq ($(OBJS_UI),) | |||||
HAVE_DGL = false | |||||
endif | |||||
# -------------------------------------------------------------- | |||||
# Set which plugin formats to build | |||||
BUILD_JACK = true | |||||
ifeq ($(LINUX),true) | |||||
BUILD_DSSI = true | |||||
endif | |||||
BUILD_LV2 = true | |||||
BUILD_VST2 = true | |||||
# -------------------------------------------------------------- | |||||
# Basic setup | |||||
TARGET_DIR = ../../bin | |||||
BUILD_C_FLAGS += -I. | |||||
BUILD_CXX_FLAGS += -I. -I../../dpf/distrho -I../../dpf/dgl | |||||
ifeq ($(HAVE_DGL),true) | |||||
BASE_FLAGS += -DHAVE_DGL | |||||
endif | |||||
ifeq ($(HAVE_JACK),true) | |||||
BASE_FLAGS += -DHAVE_JACK | |||||
endif | |||||
ifeq ($(HAVE_LIBLO),true) | |||||
BASE_FLAGS += -DHAVE_LIBLO | |||||
endif | |||||
# -------------------------------------------------------------- | |||||
# Set plugin binary file targets | |||||
jack = $(TARGET_DIR)/$(NAME)$(APP_EXT) | |||||
ladspa_dsp = $(TARGET_DIR)/$(NAME)-ladspa$(LIB_EXT) | |||||
dssi_dsp = $(TARGET_DIR)/$(NAME)-dssi$(LIB_EXT) | |||||
dssi_ui = $(TARGET_DIR)/$(NAME)-dssi/$(NAME)_ui$(APP_EXT) | |||||
lv2 = $(TARGET_DIR)/$(NAME).lv2/$(NAME)$(LIB_EXT) | |||||
lv2_dsp = $(TARGET_DIR)/$(NAME).lv2/$(NAME)_dsp$(LIB_EXT) | |||||
lv2_ui = $(TARGET_DIR)/$(NAME).lv2/$(NAME)_ui$(LIB_EXT) | |||||
vst = $(TARGET_DIR)/$(NAME)-vst$(LIB_EXT) | |||||
# -------------------------------------------------------------- | |||||
# Set distrho code files | |||||
DISTRHO_PLUGIN_FILES = ../../dpf/distrho/DistrhoPluginMain.cpp | |||||
ifeq ($(HAVE_DGL),true) | |||||
DISTRHO_UI_FILES = ../../dpf/distrho/DistrhoUIMain.cpp ../../dpf/libdgl.a | |||||
endif | |||||
# -------------------------------------------------------------- | |||||
# Handle plugins without UI | |||||
ifneq ($(HAVE_DGL),true) | |||||
dssi_ui = | |||||
lv2_ui = | |||||
DISTRHO_UI_FILES = | |||||
DGL_LIBS = | |||||
OBJS_UI = | |||||
endif | |||||
# -------------------------------------------------------------- | |||||
# all needs to be first | |||||
all: | |||||
# -------------------------------------------------------------- | |||||
# Common | |||||
%.c.o: %.c | |||||
$(CC) $< $(BUILD_C_FLAGS) -MD -MP -c -o $@ | |||||
%.cpp.o: %.cpp | |||||
$(CXX) $< $(BUILD_CXX_FLAGS) -MD -MP -c -o $@ | |||||
clean: | |||||
rm -f *.d *.o | |||||
rm -rf $(TARGET_DIR)/$(NAME) $(TARGET_DIR)/$(NAME)-* $(TARGET_DIR)/$(NAME).lv2/ | |||||
# -------------------------------------------------------------- | |||||
# JACK | |||||
jack: $(jack) | |||||
$(jack): $(OBJS_DSP) $(OBJS_UI) $(DISTRHO_PLUGIN_FILES) $(DISTRHO_UI_FILES) | |||||
mkdir -p $(shell dirname $@) | |||||
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) -lpthread $(DGL_LIBS) $(shell pkg-config --cflags --libs jack) -DDISTRHO_PLUGIN_TARGET_JACK -o $@ | |||||
# -------------------------------------------------------------- | |||||
# LADSPA | |||||
ladspa: $(ladspa_dsp) | |||||
$(ladspa_dsp): $(OBJS_DSP) $(DISTRHO_PLUGIN_FILES) | |||||
mkdir -p $(shell dirname $@) | |||||
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) -lpthread $(SHARED) -DDISTRHO_PLUGIN_TARGET_LADSPA -o $@ | |||||
# -------------------------------------------------------------- | |||||
# DSSI | |||||
dssi: $(dssi_dsp) $(dssi_ui) | |||||
dssi_dsp: $(dssi_dsp) | |||||
dssi_ui: $(dssi_ui) | |||||
$(dssi_dsp): $(OBJS_DSP) $(DISTRHO_PLUGIN_FILES) | |||||
mkdir -p $(shell dirname $@) | |||||
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) -lpthread $(SHARED) -DDISTRHO_PLUGIN_TARGET_DSSI -o $@ | |||||
$(dssi_ui): $(OBJS_UI) $(DISTRHO_UI_FILES) | |||||
mkdir -p $(shell dirname $@) | |||||
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(shell pkg-config --cflags --libs liblo) -DDISTRHO_PLUGIN_TARGET_DSSI -o $@ | |||||
# -------------------------------------------------------------- | |||||
# LV2 | |||||
lv2_one: $(lv2) | |||||
lv2_dsp: $(lv2_dsp) | |||||
lv2_sep: $(lv2_dsp) $(lv2_ui) | |||||
$(lv2): $(OBJS_DSP) $(OBJS_UI) $(DISTRHO_PLUGIN_FILES) $(DISTRHO_UI_FILES) | |||||
mkdir -p $(shell dirname $@) | |||||
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) -lpthread $(DGL_LIBS) $(SHARED) -DDISTRHO_PLUGIN_TARGET_LV2 -o $@ | |||||
$(lv2_dsp): $(OBJS_DSP) $(DISTRHO_PLUGIN_FILES) | |||||
mkdir -p $(shell dirname $@) | |||||
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) -lpthread $(SHARED) -DDISTRHO_PLUGIN_TARGET_LV2 -o $@ | |||||
$(lv2_ui): $(OBJS_UI) $(DISTRHO_UI_FILES) | |||||
mkdir -p $(shell dirname $@) | |||||
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) -DDISTRHO_PLUGIN_TARGET_LV2 -o $@ | |||||
# -------------------------------------------------------------- | |||||
# VST | |||||
vst: $(vst) | |||||
$(vst): $(OBJS_DSP) $(OBJS_UI) $(DISTRHO_PLUGIN_FILES) $(DISTRHO_UI_FILES) | |||||
mkdir -p $(shell dirname $@) | |||||
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) -lpthread $(DGL_LIBS) $(SHARED) -DDISTRHO_PLUGIN_TARGET_VST -o $@ | |||||
# -------------------------------------------------------------- | |||||
-include $(OBJS_DSP:%.o=%.d) | |||||
ifeq ($(HAVE_DGL),true) | |||||
-include $(OBJS_UI:%.o=%.d) | |||||
endif | |||||
# -------------------------------------------------------------- |