# HG changeset patch # User Chris Cannam # Date 1528811865 -3600 # Node ID b23c3427eb61ed71f3225c560c4f3361bea89423 # Parent 04bb3a41a3b2b9b7ef2b17f261f4c65c157e01fb# Parent 395304838d4dce554de1b2e86733c097cd4b4028 Merge branch 'master' into wasm diff -r 395304838d4d -r b23c3427eb61 .gitignore --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.gitignore Tue Jun 12 14:57:45 2018 +0100 @@ -0,0 +1,2 @@ +*.o +*~ diff -r 395304838d4d -r b23c3427eb61 Makefile.inc --- a/Makefile.inc Wed May 16 11:56:21 2018 +0100 +++ b/Makefile.inc Tue Jun 12 14:57:45 2018 +0100 @@ -87,6 +87,11 @@ EM_MODULE_U := $(MODULE_NAME)$(EM_MODULE_U_EXT) EM_MODULE_SYMBOL := $(MODULE_NAME)Module +WASM_MODULE_T_EXT := _w.js +WASM_MODULE_U_EXT := _w.umd.js +WASM_MODULE_T := $(MODULE_NAME)$(WASM_MODULE_T_EXT) +WASM_MODULE_U := $(MODULE_NAME)$(WASM_MODULE_U_EXT) + SO_MODULE_EXT := .so SO_MODULE := $(MODULE_NAME)$(SO_MODULE_EXT) @@ -95,11 +100,17 @@ -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']" \ - -s EXTRA_EXPORTED_RUNTIME_METHODS="['cwrap', 'allocate', 'ALLOC_NORMAL', 'Pointer_stringify', 'intArrayFromString']" \ + -s "EXPORT_NAME='$(EM_MODULE_SYMBOL)'" \ + -s "EXPORTED_FUNCTIONS=['_piperRequestJson','_piperProcessRaw','_piperFreeJson']" \ + -s "EXTRA_EXPORTED_RUNTIME_METHODS=['cwrap', 'allocate', 'ALLOC_NORMAL', 'Pointer_stringify', 'intArrayFromString']" \ $(EMFLAGS) +WASMFLAGS := \ + $(EMFLAGS) \ + -s WASM=1 + +# -s "BINARYEN_METHOD='native-wasm'" + CXX_SOURCES := $(MODULE_SOURCE) $(ADAPTER_SOURCES) $(PLUGIN_SOURCES) $(SDK_SOURCES) $(OTHER_SOURCES) C_SOURCES := $(PLUGIN_C_SOURCES) $(C_SOURCES) @@ -116,6 +127,13 @@ em: CFLAGS := -fPIC -Wall -Wextra $(DEFINES) $(OPTFLAGS) $(EMFLAGS) $(INCLUDES) em: LDFLAGS := $(EMFLAGS) +wasm: $(WASM_MODULE_U) +wasm: CXX := em++ +wasm: CC := emcc +wasm: CXXFLAGS := -std=c++11 -fPIC -Wall -Wextra $(DEFINES) $(OPTFLAGS) $(WASMFLAGS) $(INCLUDES) +wasm: CFLAGS := -fPIC -Wall -Wextra $(DEFINES) $(OPTFLAGS) $(WASMFLAGS) $(INCLUDES) +wasm: LDFLAGS := $(WASMFLAGS) + linux: $(SO_MODULE) linux: CXXFLAGS := -std=c++11 -fPIC -Wall -Wextra $(DEFINES) $(OPTFLAGS) $(INCLUDES) linux: CFLAGS := -fPIC -Wall -Wextra $(DEFINES) $(OPTFLAGS) $(INCLUDES) @@ -143,15 +161,25 @@ rm $(EM_MODULE_T) && \ ( echo ; echo "return $(EM_MODULE_SYMBOL);}));" >> $(EM_MODULE_U) ) +$(WASM_MODULE_U): $(OBJECTS) + $(CXX) $(OPTFLAGS) -o $(WASM_MODULE_T) $^ $(LDFLAGS) && \ + ( echo "(function(root,factory){if(typeof define==='function'&&define.amd){define([],factory);}else if(typeof module==='object'&&module.exports){module.exports=factory();}else{root['$(EM_MODULE_SYMBOL)']=factory();}}(this,function(){" > $(WASM_MODULE_U) ) && \ + cat $(WASM_MODULE_T) >> $(WASM_MODULE_U) && \ + rm $(WASM_MODULE_T) && \ + ( echo ; echo "return $(EM_MODULE_SYMBOL);}));" >> $(WASM_MODULE_U) ) + $(SO_MODULE): $(OBJECTS) $(CXX) -o $@ $^ $(LDFLAGS) test: em $(NODE) $(MY_DIR)/test/node-load-test.js $(shell pwd)/$(EM_MODULE_U) +test-wasm: wasm + $(NODE) $(MY_DIR)/test/node-load-test.js $(shell pwd)/$(WASM_MODULE_U) + clean: rm -f $(OBJECTS) distclean: clean - rm -f $(EM_MODULE_T) $(EM_MODULE_U) $(SO_MODULE) + rm -f $(EM_MODULE_T) $(EM_MODULE_U) $(WASM_MODULE_T) $(WASM_MODULE_U) $(SO_MODULE) diff -r 395304838d4d -r b23c3427eb61 test/quick-test-wasm.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/quick-test-wasm.html Tue Jun 12 14:57:45 2018 +0100 @@ -0,0 +1,21 @@ + + + + Piper Adapter Test + + + + + + + +

Piper Adapter Test

+ +

+ + +