diff --git a/Makefile.mk b/Makefile.mk
new file mode 100644
index 0000000..909b502
--- /dev/null
+++ b/Makefile.mk
@@ -0,0 +1,149 @@
+#!/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 & required libs
+
+ifeq ($(LINUX),true)
+HAVE_DGL = $(shell pkg-config --exists gl x11 && echo true)
+HAVE_JACK = $(shell pkg-config --exists jack && echo true)
+endif
+
+ifeq ($(MACOS),true)
+HAVE_DGL = true
+endif
+
+ifeq ($(WIN32),true)
+HAVE_DGL = true
+endif
+
+ifneq ($(HAVE_DGL),true)
+$(error OpenGL 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 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/README.md b/README.md
index c662919..27885ed 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,8 @@
# DISTRHO glBars
This is an OpenGL bars visualization plugin (as seen in XMMS and XBMC/Kodi).
-It work as a JACK standalone and audio plugin (LV2 or VST).
+Adapted from the jack_glbars project by Nedko Arnaudov.
+It works as a JACK standalone and audio plugin (LV2 or VST).
## Screenshot (in jalv.gtk)

diff --git a/plugins/Makefile.mk b/plugins/Makefile.mk
new file mode 100644
index 0000000..12c3a68
--- /dev/null
+++ b/plugins/Makefile.mk
@@ -0,0 +1,95 @@
+#!/usr/bin/make -f
+# Makefile for DISTRHO Plugins #
+# ---------------------------- #
+# Created by falkTX
+#
+
+# NAME, OBJS_DSP and OBJS_UI have been defined before
+
+include ../../Makefile.mk
+
+# --------------------------------------------------------------
+# Set which plugin formats to build
+
+BUILD_JACK = true
+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
+
+BASE_FLAGS += -DHAVE_DGL
+
+ifeq ($(HAVE_JACK),true)
+BASE_FLAGS += -DHAVE_JACK
+endif
+
+# --------------------------------------------------------------
+# Set plugin binary file targets
+
+jack = $(TARGET_DIR)/$(NAME)$(APP_EXT)
+lv2 = $(TARGET_DIR)/$(NAME).lv2/$(NAME)$(LIB_EXT)
+vst = $(TARGET_DIR)/$(NAME)-vst$(LIB_EXT)
+
+# --------------------------------------------------------------
+# Set distrho code files
+
+DISTRHO_PLUGIN_FILES = ../../dpf/distrho/DistrhoPluginMain.cpp
+DISTRHO_UI_FILES = ../../dpf/distrho/DistrhoUIMain.cpp ../../dpf/libdgl.a
+
+# --------------------------------------------------------------
+# 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) $(DGL_LIBS) $(shell pkg-config --cflags --libs jack) -lpthread -DDISTRHO_PLUGIN_TARGET_JACK -o $@
+
+# --------------------------------------------------------------
+# LV2
+
+lv2: $(lv2)
+
+$(lv2): $(OBJS_DSP) $(OBJS_UI) $(DISTRHO_PLUGIN_FILES) $(DISTRHO_UI_FILES)
+ mkdir -p $(shell dirname $@)
+ $(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) -lpthread $(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) -lpthread $(SHARED) -DDISTRHO_PLUGIN_TARGET_VST -o $@
+
+# --------------------------------------------------------------
+
+-include $(OBJS_DSP:%.o=%.d)
+-include $(OBJS_UI:%.o=%.d)
+
+# --------------------------------------------------------------
diff --git a/plugins/glBars/Makefile b/plugins/glBars/Makefile
index b5a5bfb..63b1fb4 100644
--- a/plugins/glBars/Makefile
+++ b/plugins/glBars/Makefile
@@ -31,11 +31,19 @@ LINK_FLAGS += -lpthread
# --------------------------------------------------------------
# Enable all possible plugin types
+ifeq ($(BUILD_JACK),true)
ifeq ($(HAVE_JACK),true)
TARGETS += jack
endif
+endif
+
+ifeq ($(BUILD_LV2),true)
TARGETS += lv2
+endif
+
+ifeq ($(BUILD_VST2),true)
TARGETS += vst
+endif
all: $(TARGETS)