| @@ -0,0 +1,3 @@ | |||||
| [submodule "dpf"] | |||||
| path = dpf | |||||
| url = git://github.com/DISTRHO/DPF.git | |||||
| @@ -0,0 +1,13 @@ | |||||
| DISTRHO Plugin Framework (DPF) | |||||
| Copyright (C) 2012-2014 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. | |||||
| @@ -0,0 +1,32 @@ | |||||
| #!/usr/bin/make -f | |||||
| # Makefile for DISTRHO Plugins # | |||||
| # ---------------------------- # | |||||
| # Created by falkTX | |||||
| # | |||||
| all: libs plugins gen | |||||
| # -------------------------------------------------------------- | |||||
| libs: | |||||
| $(MAKE) -C dpf/dgl | |||||
| plugins: libs | |||||
| $(MAKE) all -C plugins/Parameters | |||||
| gen: plugins dpf/utils/lv2_ttl_generator | |||||
| @$(CURDIR)/dpf/utils/generate-ttl.sh | |||||
| dpf/utils/lv2_ttl_generator: | |||||
| $(MAKE) -C dpf/utils/lv2-ttl-generator | |||||
| # -------------------------------------------------------------- | |||||
| clean: | |||||
| $(MAKE) clean -C dpf/dgl | |||||
| $(MAKE) clean -C dpf/utils/lv2-ttl-generator | |||||
| $(MAKE) clean -C plugins/Parameters | |||||
| # -------------------------------------------------------------- | |||||
| .PHONY: plugins | |||||
| @@ -0,0 +1,134 @@ | |||||
| #!/usr/bin/make -f | |||||
| # Makefile for DISTRHO Plugins # | |||||
| # ---------------------------- # | |||||
| # Created by falkTX | |||||
| # | |||||
| 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 | |||||
| # -------------------------------------------------------------- | |||||
| # Common build and link flags | |||||
| BASE_FLAGS = -Wall -Wextra -pipe | |||||
| BASE_OPTS = -O2 -ffast-math -fdata-sections -ffunction-sections | |||||
| ifneq ($(NOOPT),true) | |||||
| BASE_OPTS += -mtune=generic -msse -msse2 -mfpmath=sse | |||||
| endif | |||||
| LINK_OPTS = -fdata-sections -ffunction-sections -Wl,-O1 -Wl,--as-needed -Wl,--gc-sections -Wl,--strip-all | |||||
| ifeq ($(MACOS),true) | |||||
| # MacOS linker flags | |||||
| LINK_OPTS = -fdata-sections -ffunction-sections -Wl,-dead_strip -Wl,-dead_strip_dylibs | |||||
| endif | |||||
| ifeq ($(RASPPI),true) | |||||
| # Raspberry-Pi flags | |||||
| BASE_OPTS = -O2 -ffast-math | |||||
| ifneq ($(NOOPT),true) | |||||
| BASE_OPTS += -march=armv6 -mfpu=vfp -mfloat-abi=hard | |||||
| endif | |||||
| LINK_OPTS = -Wl,-O1 -Wl,--as-needed -Wl,--strip-all | |||||
| endif | |||||
| ifeq ($(PANDORA),true) | |||||
| # OpenPandora flags | |||||
| BASE_OPTS = -O2 -ffast-math | |||||
| ifneq ($(NOOPT),true) | |||||
| BASE_OPTS += -march=armv7-a -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp | |||||
| endif | |||||
| LINK_OPTS = -Wl,-O1 -Wl,--as-needed -Wl,--strip-all | |||||
| 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 required libs | |||||
| ifeq ($(LINUX),true) | |||||
| ifneq ($(shell pkg-config --exists jack && echo true),true) | |||||
| $(error JACK missing, cannot continue) | |||||
| endif | |||||
| ifneq ($(shell pkg-config --exists gl && echo true),true) | |||||
| $(error OpenGL missing, cannot continue) | |||||
| endif | |||||
| ifneq ($(shell pkg-config --exists x11 && echo true),true) | |||||
| $(error X11 missing, cannot continue) | |||||
| endif | |||||
| endif | |||||
| ifneq ($(shell pkg-config --exists liblo && echo true),true) | |||||
| $(error liblo missing, cannot continue) | |||||
| endif | |||||
| # -------------------------------------------------------------- | |||||
| # Set libs stuff | |||||
| 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 | |||||
| # -------------------------------------------------------------- | |||||
| # Set extension | |||||
| EXT = so | |||||
| ifeq ($(MACOS),true) | |||||
| EXT = dylib | |||||
| endif | |||||
| ifeq ($(WIN32),true) | |||||
| EXT = dll | |||||
| endif | |||||
| # -------------------------------------------------------------- | |||||
| # Set shared library CLI arg | |||||
| SHARED = -shared | |||||
| ifeq ($(MACOS),true) | |||||
| SHARED = -dynamiclib | |||||
| endif | |||||
| # -------------------------------------------------------------- | |||||
| @@ -0,0 +1,3 @@ | |||||
| # DPF Plugin Examples | |||||
| This repository contains plugin examples and test code for DPF. | |||||
| @@ -0,0 +1,3 @@ | |||||
| All final plugin builds will be placed in this folder. | |||||
| There is no "make install" process, simply copy those files to their appropriate place. | |||||
| @@ -0,0 +1 @@ | |||||
| Subproject commit e06cb84757bc45c6e682d4e228c46e3d3d0f432e | |||||
| @@ -0,0 +1,130 @@ | |||||
| #!/usr/bin/make -f | |||||
| # Makefile for DISTRHO Plugins # | |||||
| # ---------------------------- # | |||||
| # Created by falkTX | |||||
| # | |||||
| # NAME, OBJS_DSP and OBJS_UI have been defined before | |||||
| include ../../Makefile.mk | |||||
| # -------------------------------------------------------------- | |||||
| # Basic setup | |||||
| TARGET_DIR = ../../bin | |||||
| BUILD_C_FLAGS += -I. | |||||
| BUILD_CXX_FLAGS += -I. -I../../dpf/distrho -I../../dpf/dgl | |||||
| # -------------------------------------------------------------- | |||||
| # Set plugin binary file targets | |||||
| jack = $(TARGET_DIR)/$(NAME) | |||||
| ladspa_dsp = $(TARGET_DIR)/$(NAME)-ladspa.$(EXT) | |||||
| dssi_dsp = $(TARGET_DIR)/$(NAME)-dssi.$(EXT) | |||||
| dssi_ui = $(TARGET_DIR)/$(NAME)-dssi/$(NAME)_ui | |||||
| lv2 = $(TARGET_DIR)/$(NAME).lv2/$(NAME).$(EXT) | |||||
| lv2_dsp = $(TARGET_DIR)/$(NAME).lv2/$(NAME)_dsp.$(EXT) | |||||
| lv2_ui = $(TARGET_DIR)/$(NAME).lv2/$(NAME)_ui.$(EXT) | |||||
| vst = $(TARGET_DIR)/$(NAME)-vst.$(EXT) | |||||
| ifeq ($(WIN32),true) | |||||
| dssi_ui += .exe | |||||
| endif | |||||
| # TODO: MacOS VST bundle | |||||
| # -------------------------------------------------------------- | |||||
| # Set distrho code files | |||||
| DISTRHO_PLUGIN_FILES = ../../dpf/distrho/DistrhoPluginMain.cpp | |||||
| DISTRHO_UI_FILES = ../../dpf/distrho/DistrhoUIMain.cpp ../../dpf/libdgl.a | |||||
| # -------------------------------------------------------------- | |||||
| # Handle plugins without UI | |||||
| ifeq ($(TARGET_NOUI),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) -c -o $@ | |||||
| %.cpp.o: %.cpp | |||||
| $(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ | |||||
| clean: | |||||
| rm -f *.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) $(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) $(SHARED) -DDISTRHO_PLUGIN_TARGET_LADSPA -o $@ | |||||
| # -------------------------------------------------------------- | |||||
| # DSSI | |||||
| dssi: $(dssi_dsp) $(dssi_ui) | |||||
| $(dssi_dsp): $(OBJS_DSP) $(DISTRHO_PLUGIN_FILES) | |||||
| mkdir -p $(shell dirname $@) | |||||
| $(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(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_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) $(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) $(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) $(DGL_LIBS) $(SHARED) -DDISTRHO_PLUGIN_TARGET_VST -o $@ | |||||
| # -------------------------------------------------------------- | |||||