Skip to content

Commit 5c38743

Browse files
committed
Add common lib build for Linux
1 parent b376526 commit 5c38743

3 files changed

Lines changed: 59 additions & 9 deletions

File tree

Builds/Linux/Makefile.plugins

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@
55
DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD)
66

77
PLUGIN_DIR := ../../Source/Plugins
8+
COMMON_DIR := ../../Source/Plugins/CommonLibs
89

910
ifndef CONFIG
1011
CONFIG=Debug
1112
endif
1213

1314
ifeq ($(CONFIG),Debug)
14-
BINDIR := $(CURDIR)/build/intermediate/Debug
15+
BINDIR := $(CURDIR)/build
1516
LIBDIR := $(CURDIR)/build/intermediate/Debug
1617
OBJDIR := $(CURDIR)/build/intermediate/plugins/Debug
1718
OUTDIR := $(CURDIR)/build/plugins
@@ -27,12 +28,12 @@ ifeq ($(CONFIG),Debug)
2728
LDDEPS :=
2829
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 $(CURDIR)/../../Source/Plugins/Headers
2930

30-
CLEANCMD = rm -rf $(OUTDIR)/* $(OBJDIR)
31+
CLEANCMD = rm -rf $(OUTDIR)/* $(OBJDIR) $(BINDIR)/$(addsuffix .so,$(notdir $(COMMONDIRS)))
3132
endif
3233

3334
ifeq ($(CONFIG),Release)
3435
BINDIR := $(CURDIR)/build
35-
LIBDIR := $(CURDIR)/build
36+
LIBDIR := $(CURDIR)/build/intermediate/Release
3637
OBJDIR := $(CURDIR)/build/intermediate/plugins/Release
3738
OUTDIR := $(CURDIR)/build/plugins
3839

@@ -47,16 +48,21 @@ ifeq ($(CONFIG),Release)
4748
LDDEPS1 :=
4849
RESFLAGS := -D "LINUX=1" -D "NDEBUG=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 $(CURDIR)/../../Source/Plugins/Headers
4950

50-
CLEANCMD = rm -rf $(OUTDIR)/* $(OBJDIR)
51+
CLEANCMD = rm -rf $(OUTDIR)/* $(OBJDIR) $(BINDIR)/$(addsuffix .so,$(notdir $(COMMONDIRS)))
5152
endif
5253

54+
LIB_PREFIX :=
55+
5356
export
5457

5558
SUBDIRS := $(wildcard $(PLUGIN_DIR)/*)
59+
COMMONDIRS := $(wildcard $(COMMON_DIR)/*)
5660

57-
.PHONY: clean all notify $(SUBDIRS) $(notdir $(SUBDIRS))
61+
.PHONY: clean all notify $(SUBDIRS) $(notdir $(SUBDIRS)) clean/$(notdir $(SUBDIRS)) libs $(COMMONDIRS)
5862

59-
all: notify $(SUBDIRS)
63+
all: notify libs $(SUBDIRS)
64+
65+
libs: $(COMMONDIRS)
6066

6167
notify:
6268
@echo "Building Open-Ephys Plugins"
@@ -65,7 +71,9 @@ PLUGINNAME=$(shell echo $@ | rev | cut -d'/' -f-1 | rev)
6571

6672
# if there are a .jucer file in the plugin folder - try to find Makefile in the Source/ folder
6773
$(SUBDIRS): CXXFLAGS += -D "OEPLUGIN" -I $(CURDIR)/../../Source/Plugins/CommonLibs
68-
$(SUBDIRS):
74+
$(COMMONDIRS): OUTDIR := $(BINDIR)
75+
$(COMMONDIRS): LIB_PREFIX := lib
76+
$(SUBDIRS) $(COMMONDIRS):
6977
@if [ -f $@/*.jucer ] && ([ -f $@/Source/Makefile ]); then \
7078
echo "Found jucer project for" $(PLUGINNAME) "..."; \
7179
$(MAKE) -C $@/Source clean ; \
@@ -74,14 +82,15 @@ $(SUBDIRS):
7482
$(MAKE) -C $@ ; fi \
7583
fi
7684

85+
7786
.SECONDEXPANSION:
7887
$(notdir $(SUBDIRS)): $$(PLUGIN_DIR)/$$@
7988

8089
clean:
8190
@echo Cleaning open-ephys plugins
8291
@$(CLEANCMD)
8392

84-
clean/$(notdir $(SUBDIRS)):
93+
$(addprefix clean/,$(notdir $(SUBDIRS))):
8594
@echo Cleaning $(notdir $@)
8695
$(MAKE) -C $(PLUGIN_DIR)/$(notdir $@) clean
8796

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)

Source/Plugins/KWIKFormat/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ OBJDIR := $(OBJDIR)/$(LIBNAME)
44
TARGET := $(LIBNAME).so
55

66
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
7+
LDFLAGS := $(LDFLAGS) -L/usr/lib/x86_64-linux-gnu/hdf5/serial -L/usr/local/hdf5/lib -lhdf5 -lhdf5_cpp -l:OpenEphysHDF5Lib.so
88

99
SRC_DIR := ${shell find ./ -type d -print}
1010
VPATH := $(SOURCE_DIRS)

0 commit comments

Comments
 (0)