Skip to content

Commit 60a13aa

Browse files
committed
Get plugins to compile on Linux
1 parent 0713768 commit 60a13aa

6 files changed

Lines changed: 188 additions & 71 deletions

File tree

Builds/Linux/Makefile

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ ifeq ($(CONFIG),Debug)
1818
TARGET_ARCH := -march=native
1919
endif
2020

21-
CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "ZEROMQ" -D "JUCER_LINUX_MAKE_7346DA2A=1" -D "JUCE_APP_VERSION=0.3.5" -D "JUCE_APP_VERSION_HEX=0x305" -I /usr/include -I /usr/include/freetype2 -I ../../JuceLibraryCode -I ../../JuceLibraryCode/modules -I /usr/include/hdf5/serial
22-
CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O3 -export-dynamic -g -pg -std=c++0x
21+
CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -D "JUCE_APP_VERSION=0.3.5" -D "JUCE_APP_VERSION_HEX=0x305" -I /usr/include -I /usr/include/freetype2 -I ../../JuceLibraryCode -I ../../JuceLibraryCode/modules
22+
CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O3 -rdynamic -g -pg -std=c++0x
2323
CXXFLAGS += $(CFLAGS)
24-
LDFLAGS += $(TARGET_ARCH) -L$(BINDIR) -L$(LIBDIR) -L/usr/X11R6/lib/ -L/usr/local/include -L/usr/lib/x86_64-linux-gnu/hdf5/serial -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -pg -ldl -lXext -lGLU -lhdf5 -lhdf5_cpp -lzmq -fPIC
24+
LDFLAGS += $(TARGET_ARCH) -L$(BINDIR) -L$(LIBDIR) -L/usr/X11R6/lib/ -L/usr/local/include -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -pg -ldl -lXext -lGLU -fPIC
2525
LDDEPS :=
26-
RESFLAGS := -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "ZEROMQ" -D "JUCER_LINUX_MAKE_7346DA2A=1" -D "JUCE_APP_VERSION=0.3.5" -D "JUCE_APP_VERSION_HEX=0x305" -I /usr/include -I /usr/include/freetype2 -I ../../JuceLibraryCode -I ../../JuceLibraryCode/modules -I /usr/include/hdf5/serial
26+
RESFLAGS := -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -D "JUCE_APP_VERSION=0.3.5" -D "JUCE_APP_VERSION_HEX=0x305" -I /usr/include -I /usr/include/freetype2 -I ../../JuceLibraryCode -I ../../JuceLibraryCode/modules
2727
TARGET := open-ephys
28-
BLDCMD = $(CXX) -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)
28+
BLDCMD = $(CXX) -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH) -rdynamic -fPIC -ldl
2929
CLEANCMD = rm -rf $(OUTDIR)/$(TARGET) $(OBJDIR)
3030
endif
3131

@@ -39,14 +39,14 @@ ifeq ($(CONFIG),Release)
3939
TARGET_ARCH := -march=native
4040
endif
4141

42-
CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "NDEBUG=1" -D "ZEROMQ" -D "JUCER_LINUX_MAKE_7346DA2A=1" -D "JUCE_APP_VERSION=0.3.5" -D "JUCE_APP_VERSION_HEX=0x305" -I /usr/include -I /usr/include/freetype2 -I ../../JuceLibraryCode -I ../../JuceLibraryCode/modules -I /usr/include/hdf5/serial
43-
CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -O3 -export-dynamic -g -pg -std=c++0x
42+
CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "NDEBUG=1" -D "ZEROMQ" -D "JUCER_LINUX_MAKE_7346DA2A=1" -D "JUCE_APP_VERSION=0.3.5" -D "JUCE_APP_VERSION_HEX=0x305" -I /usr/include -I /usr/include/freetype2 -I ../../JuceLibraryCode -I ../../JuceLibraryCode/modules
43+
CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -O3 -rdynamic -g -pg -std=c++0x
4444
CXXFLAGS += $(CFLAGS)
45-
LDFLAGS += $(TARGET_ARCH) -L$(BINDIR) -L$(LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ -L/usr/lib/x86_64-linux-gnu/hdf5/serial -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -pg -ldl -lXext -lGLU -lhdf5 -lhdf5_cpp -lzmq -fPIC
45+
LDFLAGS += $(TARGET_ARCH) -L$(BINDIR) -L$(LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -pg -ldl -lXext -lGLU -fPIC
4646
LDDEPS :=
47-
RESFLAGS := -D "LINUX=1" -D "NDEBUG=1" -D "ZEROMQ" -D "JUCER_LINUX_MAKE_7346DA2A=1" -D "JUCE_APP_VERSION=0.3.5" -D "JUCE_APP_VERSION_HEX=0x305" -I /usr/include -I /usr/include/freetype2 -I ../../JuceLibraryCode -I ../../JuceLibraryCode/modules -I /usr/include/hdf5/serial
47+
RESFLAGS := -D "LINUX=1" -D "NDEBUG=1" -D "ZEROMQ" -D "JUCER_LINUX_MAKE_7346DA2A=1" -D "JUCE_APP_VERSION=0.3.5" -D "JUCE_APP_VERSION_HEX=0x305" -I /usr/include -I /usr/include/freetype2 -I ../../JuceLibraryCode -I ../../JuceLibraryCode/modules
4848
TARGET := open-ephys-release
49-
BLDCMD = $(CXX) -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)
49+
BLDCMD = $(CXX) -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH) -rdynamic -fPIC -ldl
5050
CLEANCMD = rm -rf $(OUTDIR)/$(TARGET) $(OBJDIR)
5151
endif
5252

Builds/Linux/Makefile.plugins

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# Automatically generated makefile, created by the Introjucer
2+
# Don't edit this file! Your changes will be overwritten when you re-save the Introjucer project!
3+
4+
# (this disables dependency generation if multiple architectures are set)
5+
DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD)
6+
7+
PLUGIN_DIR := ../../Source/Plugins
8+
9+
ifndef CONFIG
10+
CONFIG=Debug
11+
endif
12+
13+
ifeq ($(CONFIG),Debug)
14+
BINDIR := $(CURDIR)/build
15+
LIBDIR := $(CURDIR)/build
16+
OBJDIR := $(CURDIR)/build/intermediate/plugins/Debug
17+
OUTDIR := $(CURDIR)/build/plugins
18+
19+
ifeq ($(TARGET_ARCH),)
20+
TARGET_ARCH := -march=native
21+
endif
22+
23+
CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "OEPLUGIN" -D "JUCER_LINUX_MAKE_7346DA2A=1" -D "JUCE_APP_VERSION=0.3.5" -D "JUCE_APP_VERSION_HEX=0x305" -I /usr/include -I /usr/include/freetype2 -I $(CURDIR)../../JuceLibraryCode -I $(CURDIR)../../JuceLibraryCode/modules
24+
CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O3 -g -pg -std=c++0x -fPIC -rdynamic
25+
CXXFLAGS += $(CFLAGS)
26+
LDFLAGS += $(TARGET_ARCH) -L$(BINDIR) -L$(LIBDIR) -L/usr/X11R6/lib/ -L/usr/local/include -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -pg -ldl -lXext -lGLU -fPIC -rdynamic
27+
LDDEPS :=
28+
RESFLAGS := -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "OEPLUGIN" -D "JUCER_LINUX_MAKE_7346DA2A=1" -D "JUCE_APP_VERSION=0.3.5" -D "JUCE_APP_VERSION_HEX=0x305" -I /usr/include -I /usr/include/freetype2 -I $(CURDIR)../../JuceLibraryCode -I $(CURDIR)../../JuceLibraryCode/modules
29+
CLEANCMD = rm -rf $(OUTDIR)/* $(OBJDIR)
30+
endif
31+
32+
ifeq ($(CONFIG),Release)
33+
BINDIR := $(CURDIR)/build
34+
LIBDIR := $(CURDIR)/build
35+
OBJDIR := $(CURDIR)/build/intermediate/plugins/Release
36+
OUTDIR := $(CURDIR)/build/plugins
37+
38+
ifeq ($(TARGET_ARCH),)
39+
TARGET_ARCH := -march=native
40+
endif
41+
42+
CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "NDEBUG=1" -D "OEPLUGIN" -D "JUCER_LINUX_MAKE_7346DA2A=1" -D "JUCE_APP_VERSION=0.3.5" -D "JUCE_APP_VERSION_HEX=0x305" -I /usr/include -I /usr/include/freetype2 -I $(CURDIR)../../JuceLibraryCode -I $(CURDIR)../../JuceLibraryCode/modules
43+
CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -O3 -g -pg -std=c++0x -fPIC -rdynamic
44+
CXXFLAGS += $(CFLAGS)
45+
LDFLAGS += $(TARGET_ARCH) -L$(BINDIR) -L$(LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -pg -ldl -lXext -lGLU -fPIC -rdynamic
46+
LDDEPS1 :=
47+
RESFLAGS := -D "LINUX=1" -D "NDEBUG=1" -D "OEPLUGIN" -D "JUCER_LINUX_MAKE_7346DA2A=1" -D "JUCE_APP_VERSION=0.3.5" -D "JUCE_APP_VERSION_HEX=0x305" -I /usr/include -I /usr/include/freetype2 -I $(CURDIR)../../JuceLibraryCode -I $(CURDIR)../../JuceLibraryCode/modules
48+
CLEANCMD = rm -rf $(OUTDIR)/* $(OBJDIR)
49+
endif
50+
51+
export
52+
53+
SUBDIRS := $(wildcard $(PLUGIN_DIR)/*)
54+
55+
.PHONY: clean all notify $(SUBDIRS)
56+
57+
all: notify $(SUBDIRS)
58+
59+
notify:
60+
@echo "Building Open-Ephys Plugins"
61+
62+
$(SUBDIRS):
63+
@if [ -f $@/Makefile ]; then $(MAKE) -C $@ ; fi
64+
65+
%::
66+
@if [ -f $(PLUGIN_DIR)/$@/Makefile ]; then $(MAKE) -C $(PLUGIN_DIR)/$@ clean ; $(MAKE) -C $(PLUGIN_DIR)/$@ ; fi
67+
68+
69+
clean:
70+
@echo Cleaning open-ephys plugins
71+
@$(CLEANCMD)

Source/Plugins/KWIKFormat/Makefile

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
2+
LIBNAME := $(notdir $(CURDIR))
3+
OBJDIR := $(OBJDIR)/$(LIBNAME)
4+
TARGET := $(LIBNAME).so
5+
6+
CXXFLAGS := $(CXXFLAGS) -I/usr/include/hdf5/serial -I/usr/local/hdf5/include
7+
LDFLAGS := $(LDFLAGS) -L/usr/lib/x86_64-linux-gnu/hdf5/serial -L/usr/local/hdf5/lib -lhdf5 -lhdf5_cpp
8+
9+
SRC_DIR := ${shell find -type d -print}
10+
VPATH := $(SOURCE_DIRS)
11+
12+
SRC := $(foreach sdir,$(SRC_DIR),$(wildcard $(sdir)/*.cpp))
13+
OBJ := $(addprefix $(OBJDIR)/,$(notdir $(SRC:.cpp=.o)))
14+
15+
BLDCMD := $(CXX) -shared -o $(OUTDIR)/$(TARGET) $(OBJ) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)
16+
17+
VPATH = $(SRC_DIR)
18+
19+
.PHONY: objdir
20+
21+
$(OUTDIR)/$(TARGET): objdir $(OBJ)
22+
-@mkdir -p $(BINDIR)
23+
-@mkdir -p $(LIBDIR)
24+
-@mkdir -p $(OUTDIR)
25+
@echo "Building $(TARGET)"
26+
@$(BLDCMD)
27+
28+
$(OBJDIR)/%.o : %.cpp
29+
@echo "Compiling $<"
30+
@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
31+
32+
33+
objdir:
34+
-@mkdir -p $(OBJDIR)
35+
36+
clean:
37+
@echo "Cleaning $(LIBNAME)"
38+
-@rm -rf $(OBJDIR)
39+
-@rm -f $(OUTDIR)/$(TARGET)
40+
41+
-include $(OBJ:%.o=%.d)
Lines changed: 24 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,39 @@
1-
TYPE = sinks
21

3-
ifeq ($(TARGET_ARCH),)
4-
TARGET_ARCH := -march=native
5-
endif
2+
LIBNAME := $(notdir $(CURDIR))
3+
OBJDIR := $(OBJDIR)/$(LIBNAME)
4+
TARGET := $(LIBNAME).so
65

7-
# (this disables dependency generation if multiple architectures are set)
8-
DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD)
96

10-
PLUGINDIR := /usr/local/lib/GUI
11-
BINDIR := build
12-
LIBDIR := build
13-
OBJDIR := build/intermediate/Debug
14-
OUTDIR := build
15-
CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
16-
CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -fPIC -O0
17-
CXXFLAGS += $(CFLAGS)
18-
LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -shared -L/usr/X11R6/lib/ -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -lephys
19-
LDDEPS :=
20-
RESFLAGS := -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
21-
TARGET := LfpDisplayNode.so
22-
BLDCMD = $(CXX) -shared -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)
7+
SRC_DIR := ${shell find -type d -print}
8+
VPATH := $(SOURCE_DIRS)
239

24-
OBJECTS := \
25-
$(OBJDIR)/LfpDisplayEditor.o \
26-
$(OBJDIR)/LfpDisplayNode.o \
27-
$(OBJDIR)/LfpDisplayCanvas.o \
10+
SRC := $(foreach sdir,$(SRC_DIR),$(wildcard $(sdir)/*.cpp))
11+
OBJ := $(addprefix $(OBJDIR)/,$(notdir $(SRC:.cpp=.o)))
2812

29-
.PHONY: clean install
13+
BLDCMD := $(CXX) -shared -o $(OUTDIR)/$(TARGET) $(OBJ) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)
3014

31-
$(OUTDIR)/$(TARGET): $(OBJECTS) $(LDDEPS) $(RESOURCES)
15+
VPATH = $(SRC_DIR)
16+
17+
.PHONY: objdir
18+
19+
$(OUTDIR)/$(TARGET): objdir $(OBJ)
3220
-@mkdir -p $(BINDIR)
3321
-@mkdir -p $(LIBDIR)
3422
-@mkdir -p $(OUTDIR)
23+
@echo "Building $(TARGET)"
3524
@$(BLDCMD)
3625

37-
install:
38-
@echo ${TARGET} installed.
39-
-@sudo mv $(BINDIR)/$(TARGET) $(PLUGINDIR)/$(TYPE)/$(TARGET)
40-
41-
clean:
42-
@echo Plugin cleaned.
43-
-@rm -f $(OUTDIR)/$(TARGET)
44-
-@rm -rf $(OBJDIR)/*
45-
-@rm -rf $(OBJDIR)
46-
-@rm -rf $(BINDIR)
47-
-@sudo rm -rf $(PLUGINDIR)/$(TYPE)/$(TARGET)
48-
49-
strip:
50-
@echo Plugin stripped.
51-
-@strip --strip-unneeded $(OUTDIR)/$(TARGET)
52-
53-
$(OBJDIR)/LfpDisplayEditor.o: LfpDisplayEditor.cpp
54-
-@mkdir -p $(OBJDIR)
55-
@echo "Compiling LfpDisplayEditor.cpp"
26+
$(OBJDIR)/%.o : %.cpp
27+
@echo "Compiling $<"
5628
@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
57-
58-
$(OBJDIR)/LfpDisplayCanvas.o: LfpDisplayCanvas.cpp
29+
30+
31+
objdir:
5932
-@mkdir -p $(OBJDIR)
60-
@echo "Compiling LfpDisplayCanvas.cpp"
61-
@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
6233

63-
$(OBJDIR)/LfpDisplayNode.o: LfpDisplayNode.cpp
64-
-@mkdir -p $(OBJDIR)
65-
@echo "Compiling LfpDisplayNode.cpp"
66-
@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
67-
68-
$(OBJDIR)/VisualizerEditor.o: ../Editors/VisualizerEditor.cpp
69-
-@mkdir -p $(OBJDIR)
70-
@echo "Compiling VisualizerEditor.cpp"
71-
@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
34+
clean:
35+
@echo "Cleaning $(LIBNAME)"
36+
-@rm -rf $(OBJDIR)
37+
-@rm -f $(OUTDIR)/$(TARGET)
7238

73-
-include $(OBJECTS:%.o=%.d)
39+
-include $(OBJ:%.o=%.d)

Source/Plugins/RhythmNode/Makefile

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
2+
LIBNAME := $(notdir $(CURDIR))
3+
OBJDIR := $(OBJDIR)/$(LIBNAME)
4+
TARGET := $(LIBNAME).so
5+
6+
7+
SRC_DIR := ${shell find -type d -print}
8+
VPATH := $(SOURCE_DIRS)
9+
10+
SRC := $(foreach sdir,$(SRC_DIR),$(wildcard $(sdir)/*.cpp))
11+
OBJ := $(addprefix $(OBJDIR)/,$(notdir $(SRC:.cpp=.o)))
12+
13+
BLDCMD := $(CXX) -shared -o $(OUTDIR)/$(TARGET) $(OBJ) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)
14+
15+
VPATH = $(SRC_DIR)
16+
17+
.PHONY: objdir
18+
19+
$(OUTDIR)/$(TARGET): objdir $(OBJ)
20+
-@mkdir -p $(BINDIR)
21+
-@mkdir -p $(LIBDIR)
22+
-@mkdir -p $(OUTDIR)
23+
@echo "Building $(TARGET)"
24+
@$(BLDCMD)
25+
26+
$(OBJDIR)/%.o : %.cpp
27+
@echo "Compiling $<"
28+
@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
29+
30+
31+
objdir:
32+
-@mkdir -p $(OBJDIR)
33+
34+
clean:
35+
@echo "Cleaning $(LIBNAME)"
36+
-@rm -rf $(OBJDIR)
37+
-@rm -f $(OUTDIR)/$(TARGET)
38+
39+
-include $(OBJ:%.o=%.d)

Source/Processors/PluginManager/PluginManager.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ void PluginManager::loadAllPlugins()
7878
return;
7979
}
8080

81-
pluginPath.findChildFiles(foundDLLs, File::findFiles, true, "*.dll");
81+
pluginPath.findChildFiles(foundDLLs, File::findFiles, true, pluginExt);
8282

8383
for (int i = 0; i < foundDLLs.size(); i++)
8484
{
@@ -123,7 +123,7 @@ int PluginManager::loadPlugin(const String& pluginLoc) {
123123
to memory mishaps.
124124
*/
125125
void *handle = 0;
126-
handle = dlopen(processorLocCString,RTLD_GLOBAL|RTLD_LAZY);
126+
handle = dlopen(processorLocCString,RTLD_GLOBAL|RTLD_NOW);
127127
#else
128128
HINSTANCE handle;
129129
handle = LoadLibrary(processorLocCString);
@@ -351,4 +351,4 @@ PluginManager::Manager *PluginManager::Manager::getInstance() {
351351
}
352352
return instance;
353353
}
354-
#endif
354+
#endif

0 commit comments

Comments
 (0)