Mercurial > hg > piper-vamp-js
view Makefile.inc @ 129:19fb654630e7
Permit running test with only one arg (picking up first plugin as default), check for successful response, etc
author | Chris Cannam <c.cannam@qmul.ac.uk> |
---|---|
date | Thu, 10 Nov 2016 17:07:35 +0000 |
parents | a8d054ec22ac |
children | e4f215205fdc |
line wrap: on
line source
default: help help: @echo @echo "Supported make targets:" @echo @echo "$$ make em" @echo " - build Javascript module using Emscripten" @echo "$$ make linux" @echo " - build native-code module on Linux (currently this is mostly for testing)" @echo "$$ make clean" @echo " - remove intermediate build files, but not targets" @echo "$$ make distclean" @echo " - remove all targets and intermediate build files" @echo @echo "Note: when switching from one target to another, make clean first" @echo MY_DIR := $(realpath $(dir $(lastword $(MAKEFILE_LIST)))) SRC_DIR := $(MY_DIR)/src SDK_DIR := $(MY_DIR)/../vamp-plugin-sdk PIPERCPP_DIR := $(MY_DIR)/../piper-cpp ADAPTER_HEADERS := \ $(SRC_DIR)/PiperAdapter.h \ $(SRC_DIR)/PiperPluginLibrary.h ADAPTER_SOURCES := \ $(SRC_DIR)/PiperPluginLibrary.cpp SDK_SOURCES := \ $(SDK_DIR)/src/vamp-hostsdk/PluginBufferingAdapter.cpp \ $(SDK_DIR)/src/vamp-hostsdk/PluginChannelAdapter.cpp \ $(SDK_DIR)/src/vamp-hostsdk/PluginHostAdapter.cpp \ $(SDK_DIR)/src/vamp-hostsdk/PluginInputDomainAdapter.cpp \ $(SDK_DIR)/src/vamp-hostsdk/PluginLoader.cpp \ $(SDK_DIR)/src/vamp-hostsdk/PluginSummarisingAdapter.cpp \ $(SDK_DIR)/src/vamp-hostsdk/PluginWrapper.cpp \ $(SDK_DIR)/src/vamp-hostsdk/RealTime.cpp \ $(SDK_DIR)/src/vamp-hostsdk/Files.cpp \ $(SDK_DIR)/src/vamp-sdk/PluginAdapter.cpp \ $(SDK_DIR)/src/vamp-sdk/RealTime.cpp \ $(SDK_DIR)/src/vamp-sdk/FFT.cpp OTHER_SOURCES := \ $(PIPERCPP_DIR)/json11/json11.cpp EM_MODULE_EXT := .js EM_MODULE := $(MODULE_NAME)$(EM_MODULE_EXT) EM_MODULE_SYMBOL := $(MODULE_NAME)Module SO_MODULE_EXT := .so SO_MODULE := $(MODULE_NAME)$(SO_MODULE_EXT) EMFLAGS := \ --memory-init-file 0 \ -s MODULARIZE=1 \ -s NO_FILESYSTEM=1 \ -s ERROR_ON_UNDEFINED_SYMBOLS=1 \ -s EXPORT_NAME="'$(EM_MODULE_SYMBOL)'" \ -s EXPORTED_FUNCTIONS="['_piperRequestJson','_piperProcessRaw','_piperFreeJson']" \ $(EMFLAGS) CXX_SOURCES := $(MODULE_SOURCE) $(ADAPTER_SOURCES) $(PLUGIN_SOURCES) $(SDK_SOURCES) $(OTHER_SOURCES) C_SOURCES := $(PLUGIN_C_SOURCES) $(C_SOURCES) #OPTFLAGS := -g3 OPTFLAGS := -O3 -ffast-math DEFINES := $(DEFINES) INCPATH := -I$(SRC_DIR) -I$(SDK_DIR) -I$(PIPERCPP_DIR) $(INCPATH) em: $(EM_MODULE) em: CXX := em++ em: CC := emcc em: CXXFLAGS := -std=c++11 -fPIC -Wall -Wextra $(DEFINES) $(OPTFLAGS) $(EMFLAGS) $(INCPATH) em: CFLAGS := -fPIC -Wall -Wextra $(DEFINES) $(OPTFLAGS) $(EMFLAGS) $(INCPATH) em: LDFLAGS := $(EMFLAGS) linux: $(SO_MODULE) linux: CXXFLAGS := -std=c++11 -fPIC -Wall -Wextra $(DEFINES) $(OPTFLAGS) $(INCPATH) linux: CFLAGS := -fPIC -Wall -Wextra $(DEFINES) $(OPTFLAGS) $(INCPATH) linux: LDFLAGS := -shared -Wl,-Bsymbolic -Wl,-soname=$(SO_MODULE) -Wl,-z,defs -Wl,--version-script=$(SRC_DIR)/piper.map -ldl OBJDIR := o CXX_OBJECTS := $(CXX_SOURCES:.cpp=.o) C_OBJECTS := $(C_SOURCES:.c=.o) ALL_OBJECTS := $(CXX_OBJECTS) $(C_OBJECTS) OBJECTS := $(addprefix $(OBJDIR)/,$(abspath $(ALL_OBJECTS))) o/%.o: %.cpp mkdir -p $(dir $@) $(CXX) -c $(INCPATH) $(CXXFLAGS) -o $@ $< o/%.o: %.c mkdir -p $(dir $@) $(CC) -c $(INCPATH) $(CFLAGS) -o $@ $< $(EM_MODULE): $(OBJECTS) $(CXX) $(OPTFLAGS) -o $@ $^ $(LDFLAGS) && \ ( echo "if (typeof process === 'object') module.exports=$(EM_MODULE_SYMBOL);" >> $(EM_MODULE) ) $(SO_MODULE): $(OBJECTS) $(CXX) -o $@ $^ $(LDFLAGS) clean: rm -f $(OBJECTS) distclean: clean rm -f $(EM_MODULE) $(SO_MODULE)