annotate Makefile.inc.em @ 50:afaeb2258678

Update build files for current layout, put obj files in o/ rather than polluting the external directories
author Chris Cannam
date Thu, 10 Nov 2016 11:01:08 +0000
parents 90bf9d9f9c95
children
rev   line source
Chris@15 1
Chris@50 2 SRC_DIR := src
Chris@15 3 SDK_DIR := ../vamp-plugin-sdk
Chris@43 4 PIPERCPP_DIR := ../piper-cpp
Chris@15 5
Chris@50 6 ADAPTER_HEADERS := \
Chris@50 7 $(SRC_DIR)/PiperAdapter.h \
Chris@50 8 $(SRC_DIR)/PiperPluginLibrary.h
Chris@50 9 ADAPTER_SOURCES := \
Chris@50 10 $(SRC_DIR)/PiperPluginLibrary.cpp
Chris@50 11
Chris@15 12 SDK_SOURCES := \
Chris@50 13 $(SDK_DIR)/src/vamp-hostsdk/PluginBufferingAdapter.cpp \
Chris@15 14 $(SDK_DIR)/src/vamp-hostsdk/PluginChannelAdapter.cpp \
Chris@50 15 $(SDK_DIR)/src/vamp-hostsdk/PluginHostAdapter.cpp \
Chris@50 16 $(SDK_DIR)/src/vamp-hostsdk/PluginInputDomainAdapter.cpp \
Chris@50 17 $(SDK_DIR)/src/vamp-hostsdk/PluginLoader.cpp \
Chris@50 18 $(SDK_DIR)/src/vamp-hostsdk/PluginSummarisingAdapter.cpp \
Chris@50 19 $(SDK_DIR)/src/vamp-hostsdk/PluginWrapper.cpp \
Chris@50 20 $(SDK_DIR)/src/vamp-hostsdk/RealTime.cpp \
Chris@50 21 $(SDK_DIR)/src/vamp-hostsdk/Files.cpp \
Chris@15 22 $(SDK_DIR)/src/vamp-sdk/PluginAdapter.cpp \
Chris@15 23 $(SDK_DIR)/src/vamp-sdk/RealTime.cpp \
Chris@15 24 $(SDK_DIR)/src/vamp-sdk/FFT.cpp
Chris@15 25
Chris@15 26 OTHER_SOURCES := \
Chris@43 27 $(PIPERCPP_DIR)/json11/json11.cpp
Chris@15 28
Chris@15 29 MODULE_EXT := .js
Chris@15 30 MODULE := $(MODULE_NAME)$(MODULE_EXT)
Chris@15 31 MODULE_SYMBOL := $(MODULE_NAME)Module
Chris@15 32
Chris@15 33 EMFLAGS := \
Chris@15 34 --memory-init-file 0 \
Chris@15 35 -s MODULARIZE=1 \
Chris@15 36 -s NO_FILESYSTEM=1 \
Chris@15 37 -s ERROR_ON_UNDEFINED_SYMBOLS=1 \
Chris@15 38 -s EXPORT_NAME="'$(MODULE_SYMBOL)'" \
Chris@43 39 -s EXPORTED_FUNCTIONS="['_piperRequestJson','_piperProcessRaw','_piperFreeJson']" \
Chris@17 40 $(EMFLAGS)
Chris@15 41
Chris@37 42 CXX_SOURCES := $(MODULE_SOURCE) $(ADAPTER_SOURCES) $(PLUGIN_SOURCES) $(SDK_SOURCES) $(OTHER_SOURCES)
Chris@50 43 C_SOURCES := $(PLUGIN_C_SOURCES)
Chris@15 44 LDFLAGS := $(EMFLAGS)
Chris@15 45
Chris@15 46 CXX := em++
Chris@37 47 CC := emcc
Chris@15 48
Chris@15 49 #OPTFLAGS := -g3
Chris@15 50 OPTFLAGS := -O3 -ffast-math
Chris@15 51
Chris@35 52 DEFINES := $(DEFINES)
Chris@15 53
Chris@50 54 INCPATH := -I$(SRC_DIR) -I$(SDK_DIR) -I$(PIPERCPP_DIR) $(INCPATH)
Chris@15 55
Chris@37 56 CXXFLAGS := -std=c++11 -fPIC -Wall -Wextra $(DEFINES) $(OPTFLAGS) $(EMFLAGS) $(INCPATH)
Chris@37 57 CFLAGS := -fPIC -Wall -Wextra $(DEFINES) $(OPTFLAGS) $(EMFLAGS) $(INCPATH)
Chris@37 58
Chris@50 59 OBJDIR := o
Chris@50 60
Chris@37 61 CXX_OBJECTS := $(CXX_SOURCES:.cpp=.o)
Chris@37 62 C_OBJECTS := $(C_SOURCES:.c=.o)
Chris@37 63 OBJECTS := $(CXX_OBJECTS) $(C_OBJECTS)
Chris@50 64 OBJECTS := $(addprefix $(OBJDIR)/,$(realpath $(OBJECTS)))
Chris@50 65
Chris@50 66 o/%.o: %.cpp
Chris@50 67 mkdir -p $(dir $@)
Chris@50 68 $(CXX) $(INCPATH) $(CXXFLAGS) -o $@ $<
Chris@50 69
Chris@50 70 o/%.o: %.c
Chris@50 71 mkdir -p $(dir $@)
Chris@50 72 $(CC) $(INCPATH) $(CFLAGS) -o $@ $<
Chris@15 73
Chris@15 74 all: $(MODULE)
Chris@15 75
Chris@37 76 $(MODULE): $(OBJECTS)
Chris@38 77 $(CXX) $(OPTFLAGS) $(EMFLAGS) -o $(MODULE) $(OBJECTS) $(MODULE_LDFLAGS) && \
Chris@21 78 ( echo "if (typeof process === 'object') module.exports=$(MODULE_SYMBOL);" >> $(MODULE) )
Chris@15 79
Chris@15 80 clean:
Chris@37 81 rm -f $(MODULE) $(OBJECTS)