Chris@15: Chris@50: SRC_DIR := src Chris@15: SDK_DIR := ../vamp-plugin-sdk Chris@43: PIPERCPP_DIR := ../piper-cpp Chris@15: Chris@50: ADAPTER_HEADERS := \ Chris@50: $(SRC_DIR)/PiperAdapter.h \ Chris@50: $(SRC_DIR)/PiperPluginLibrary.h Chris@50: ADAPTER_SOURCES := \ Chris@50: $(SRC_DIR)/PiperPluginLibrary.cpp Chris@50: Chris@15: SDK_SOURCES := \ Chris@50: $(SDK_DIR)/src/vamp-hostsdk/PluginBufferingAdapter.cpp \ Chris@15: $(SDK_DIR)/src/vamp-hostsdk/PluginChannelAdapter.cpp \ Chris@50: $(SDK_DIR)/src/vamp-hostsdk/PluginHostAdapter.cpp \ Chris@50: $(SDK_DIR)/src/vamp-hostsdk/PluginInputDomainAdapter.cpp \ Chris@50: $(SDK_DIR)/src/vamp-hostsdk/PluginLoader.cpp \ Chris@50: $(SDK_DIR)/src/vamp-hostsdk/PluginSummarisingAdapter.cpp \ Chris@50: $(SDK_DIR)/src/vamp-hostsdk/PluginWrapper.cpp \ Chris@50: $(SDK_DIR)/src/vamp-hostsdk/RealTime.cpp \ Chris@50: $(SDK_DIR)/src/vamp-hostsdk/Files.cpp \ Chris@15: $(SDK_DIR)/src/vamp-sdk/PluginAdapter.cpp \ Chris@15: $(SDK_DIR)/src/vamp-sdk/RealTime.cpp \ Chris@15: $(SDK_DIR)/src/vamp-sdk/FFT.cpp Chris@15: Chris@15: OTHER_SOURCES := \ Chris@43: $(PIPERCPP_DIR)/json11/json11.cpp Chris@15: Chris@15: MODULE_EXT := .js Chris@15: MODULE := $(MODULE_NAME)$(MODULE_EXT) Chris@15: MODULE_SYMBOL := $(MODULE_NAME)Module Chris@15: Chris@15: EMFLAGS := \ Chris@15: --memory-init-file 0 \ Chris@15: -s MODULARIZE=1 \ Chris@15: -s NO_FILESYSTEM=1 \ Chris@15: -s ERROR_ON_UNDEFINED_SYMBOLS=1 \ Chris@15: -s EXPORT_NAME="'$(MODULE_SYMBOL)'" \ Chris@43: -s EXPORTED_FUNCTIONS="['_piperRequestJson','_piperProcessRaw','_piperFreeJson']" \ Chris@17: $(EMFLAGS) Chris@15: Chris@37: CXX_SOURCES := $(MODULE_SOURCE) $(ADAPTER_SOURCES) $(PLUGIN_SOURCES) $(SDK_SOURCES) $(OTHER_SOURCES) Chris@50: C_SOURCES := $(PLUGIN_C_SOURCES) Chris@15: LDFLAGS := $(EMFLAGS) Chris@15: Chris@15: CXX := em++ Chris@37: CC := emcc Chris@15: Chris@15: #OPTFLAGS := -g3 Chris@15: OPTFLAGS := -O3 -ffast-math Chris@15: Chris@35: DEFINES := $(DEFINES) Chris@15: Chris@50: INCPATH := -I$(SRC_DIR) -I$(SDK_DIR) -I$(PIPERCPP_DIR) $(INCPATH) Chris@15: Chris@37: CXXFLAGS := -std=c++11 -fPIC -Wall -Wextra $(DEFINES) $(OPTFLAGS) $(EMFLAGS) $(INCPATH) Chris@37: CFLAGS := -fPIC -Wall -Wextra $(DEFINES) $(OPTFLAGS) $(EMFLAGS) $(INCPATH) Chris@37: Chris@50: OBJDIR := o Chris@50: Chris@37: CXX_OBJECTS := $(CXX_SOURCES:.cpp=.o) Chris@37: C_OBJECTS := $(C_SOURCES:.c=.o) Chris@37: OBJECTS := $(CXX_OBJECTS) $(C_OBJECTS) Chris@50: OBJECTS := $(addprefix $(OBJDIR)/,$(realpath $(OBJECTS))) Chris@50: Chris@50: o/%.o: %.cpp Chris@50: mkdir -p $(dir $@) Chris@50: $(CXX) $(INCPATH) $(CXXFLAGS) -o $@ $< Chris@50: Chris@50: o/%.o: %.c Chris@50: mkdir -p $(dir $@) Chris@50: $(CC) $(INCPATH) $(CFLAGS) -o $@ $< Chris@15: Chris@15: all: $(MODULE) Chris@15: Chris@37: $(MODULE): $(OBJECTS) Chris@38: $(CXX) $(OPTFLAGS) $(EMFLAGS) -o $(MODULE) $(OBJECTS) $(MODULE_LDFLAGS) && \ Chris@21: ( echo "if (typeof process === 'object') module.exports=$(MODULE_SYMBOL);" >> $(MODULE) ) Chris@15: Chris@15: clean: Chris@37: rm -f $(MODULE) $(OBJECTS)