annotate Makefile.inc.em @ 37:e3b070ae24eb

Add QM Vamp Plugins build, and separate out object file builds (so we can use the C compiler for .c files). Problem is we are now building in the "client project"'s own directory, so conflicting with its own native .o files -- to be revised.
author Chris Cannam
date Fri, 30 Sep 2016 19:06:02 +0100
parents 34480328bf5c
children 946c965fd1eb
rev   line source
Chris@15 1
Chris@15 2 ADAPTER_HEADERS := VamPipeAdapter.h VamPipePluginLibrary.h
Chris@15 3 ADAPTER_SOURCES := VamPipePluginLibrary.cpp
Chris@15 4
Chris@15 5 SDK_DIR := ../vamp-plugin-sdk
Chris@15 6
Chris@15 7 SDK_SOURCES := \
Chris@15 8 $(SDK_DIR)/src/vamp-hostsdk/PluginBufferingAdapter.cpp \
Chris@15 9 $(SDK_DIR)/src/vamp-hostsdk/PluginChannelAdapter.cpp \
Chris@15 10 $(SDK_DIR)/src/vamp-hostsdk/PluginHostAdapter.cpp \
Chris@15 11 $(SDK_DIR)/src/vamp-hostsdk/PluginInputDomainAdapter.cpp \
Chris@15 12 $(SDK_DIR)/src/vamp-hostsdk/PluginLoader.cpp \
Chris@15 13 $(SDK_DIR)/src/vamp-hostsdk/PluginSummarisingAdapter.cpp \
Chris@15 14 $(SDK_DIR)/src/vamp-hostsdk/PluginWrapper.cpp \
Chris@15 15 $(SDK_DIR)/src/vamp-hostsdk/RealTime.cpp \
Chris@15 16 $(SDK_DIR)/src/vamp-hostsdk/Files.cpp \
Chris@15 17 $(SDK_DIR)/src/vamp-sdk/PluginAdapter.cpp \
Chris@15 18 $(SDK_DIR)/src/vamp-sdk/RealTime.cpp \
Chris@15 19 $(SDK_DIR)/src/vamp-sdk/FFT.cpp
Chris@15 20
Chris@15 21 OTHER_SOURCES := \
Chris@15 22 ../json/json11/json11.cpp
Chris@15 23
Chris@15 24 MODULE_EXT := .js
Chris@15 25 MODULE := $(MODULE_NAME)$(MODULE_EXT)
Chris@15 26 MODULE_SYMBOL := $(MODULE_NAME)Module
Chris@15 27
Chris@15 28 EMFLAGS := \
Chris@15 29 --memory-init-file 0 \
Chris@15 30 -s MODULARIZE=1 \
Chris@15 31 -s NO_FILESYSTEM=1 \
Chris@15 32 -s ERROR_ON_UNDEFINED_SYMBOLS=1 \
Chris@15 33 -s EXPORT_NAME="'$(MODULE_SYMBOL)'" \
Chris@17 34 -s EXPORTED_FUNCTIONS="['_vampipeRequestJson','_vampipeProcessRaw','_vampipeFreeJson']" \
Chris@17 35 $(EMFLAGS)
Chris@15 36
Chris@37 37 CXX_SOURCES := $(MODULE_SOURCE) $(ADAPTER_SOURCES) $(PLUGIN_SOURCES) $(SDK_SOURCES) $(OTHER_SOURCES)
Chris@15 38 LDFLAGS := $(EMFLAGS)
Chris@15 39
Chris@15 40 CXX := em++
Chris@37 41 CC := emcc
Chris@15 42
Chris@15 43 #OPTFLAGS := -g3
Chris@15 44 OPTFLAGS := -O3 -ffast-math
Chris@15 45
Chris@35 46 DEFINES := $(DEFINES)
Chris@15 47
Chris@37 48 INCPATH := -I$(SDK_DIR) -I.. -I../json $(INCPATH)
Chris@15 49
Chris@37 50 CXXFLAGS := -std=c++11 -fPIC -Wall -Wextra $(DEFINES) $(OPTFLAGS) $(EMFLAGS) $(INCPATH)
Chris@37 51 CFLAGS := -fPIC -Wall -Wextra $(DEFINES) $(OPTFLAGS) $(EMFLAGS) $(INCPATH)
Chris@37 52
Chris@37 53 CXX_OBJECTS := $(CXX_SOURCES:.cpp=.o)
Chris@37 54 C_OBJECTS := $(C_SOURCES:.c=.o)
Chris@37 55 OBJECTS := $(CXX_OBJECTS) $(C_OBJECTS)
Chris@15 56
Chris@15 57 all: $(MODULE)
Chris@15 58
Chris@37 59 $(MODULE): $(OBJECTS)
Chris@37 60 $(CXX) $(OBTFLAGS) $(EMFLAGS) -o $(MODULE) $(OBJECTS) $(MODULE_LDFLAGS) && \
Chris@21 61 ( echo "if (typeof process === 'object') module.exports=$(MODULE_SYMBOL);" >> $(MODULE) )
Chris@15 62
Chris@15 63 clean:
Chris@37 64 rm -f $(MODULE) $(OBJECTS)