diff --git a/.gitignore b/.gitignore index 5d92e16..4f327d8 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,5 @@ .kdev_include_paths .kdev4/ -bin/*-dssi/ -bin/*.lv2/ -bin/Nekobi +bin/ +build/ diff --git a/.gitmodules b/.gitmodules index 608b657..924d963 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "dpf"] path = dpf - url = git://github.com/DISTRHO/DPF + url = https://github.com/DISTRHO/DPF diff --git a/Makefile b/Makefile index 580d08a..a548af5 100644 --- a/Makefile +++ b/Makefile @@ -4,24 +4,21 @@ # Created by falkTX # -include Makefile.mk +include dpf/Makefile.base.mk -all: libs plugins modguis gen +all: dgl plugins gen # -------------------------------------------------------------- -libs: +dgl: ifeq ($(HAVE_DGL),true) $(MAKE) -C dpf/dgl endif -plugins: libs +plugins: dgl $(MAKE) all -C plugins/Nekobi -modguis: plugins - cp -r modguis/Nekobi.modgui/modgui bin/Nekobi.lv2/ - cp modguis/Nekobi.modgui/manifest.ttl bin/Nekobi.lv2/modgui.ttl - +ifneq ($(CROSS_COMPILING),true) gen: plugins dpf/utils/lv2_ttl_generator @$(CURDIR)/dpf/utils/generate-ttl.sh ifeq ($(MACOS),true) @@ -30,15 +27,17 @@ endif dpf/utils/lv2_ttl_generator: $(MAKE) -C dpf/utils/lv2-ttl-generator +else +gen: +endif # -------------------------------------------------------------- clean: -ifeq ($(HAVE_DGL),true) $(MAKE) clean -C dpf/dgl -endif $(MAKE) clean -C dpf/utils/lv2-ttl-generator $(MAKE) clean -C plugins/Nekobi + rm -rf bin build # -------------------------------------------------------------- diff --git a/Makefile.mk b/Makefile.mk deleted file mode 100644 index 6759e24..0000000 --- a/Makefile.mk +++ /dev/null @@ -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 - -# -------------------------------------------------------------- diff --git a/bin/README b/bin/README deleted file mode 100644 index f90c628..0000000 --- a/bin/README +++ /dev/null @@ -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. diff --git a/dpf b/dpf index 3bbbef1..eb1ec93 160000 --- a/dpf +++ b/dpf @@ -1 +1 @@ -Subproject commit 3bbbef19fe12ef5d68f2810510da1fae6fdd35ff +Subproject commit eb1ec93eedb24e33c5e6d8442d7f2d1bd7038a13 diff --git a/plugins/Makefile.mk b/plugins/Makefile.mk deleted file mode 100644 index 6a04c51..0000000 --- a/plugins/Makefile.mk +++ /dev/null @@ -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 - -# -------------------------------------------------------------- diff --git a/plugins/Nekobi/Makefile b/plugins/Nekobi/Makefile index d285cf5..e9b6de7 100644 --- a/plugins/Nekobi/Makefile +++ b/plugins/Nekobi/Makefile @@ -12,47 +12,44 @@ NAME = Nekobi # -------------------------------------------------------------- # Files to build -OBJS_DSP = \ - DistrhoPluginNekobi.cpp.o +FILES_DSP = \ + DistrhoPluginNekobi.cpp -OBJS_UI = \ - DistrhoArtworkNekobi.cpp.o \ - DistrhoUINekobi.cpp.o +FILES_UI = \ + DistrhoArtworkNekobi.cpp \ + DistrhoUINekobi.cpp # -------------------------------------------------------------- # Do some magic -include ../Makefile.mk +include ../../dpf/Makefile.plugins.mk + +# -------------------------------------------------------------- +# Extra flags + +LINK_FLAGS += -lpthread # -------------------------------------------------------------- # Enable all possible plugin types -ifeq ($(BUILD_JACK),true) ifeq ($(HAVE_JACK),true) TARGETS += jack endif -endif -ifeq ($(BUILD_DSSI),true) 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 else TARGETS += lv2_dsp endif -endif -ifeq ($(BUILD_VST2),true) TARGETS += vst -endif all: $(TARGETS)