diff options
Diffstat (limited to 'webassembly/Makefile')
-rw-r--r-- | webassembly/Makefile | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/webassembly/Makefile b/webassembly/Makefile new file mode 100644 index 0000000..0487d2a --- /dev/null +++ b/webassembly/Makefile @@ -0,0 +1,32 @@ +TARGET=libwhiteboard.wasm +TARGETJS=$(TARGET:.wasm=.js) + +OBJS=diff.o + +CXX=em++ + +CXXFLAGS=-I./include -O2 -std=c++20 +LDFLAGS=-s WASM=1 -s EXPORTED_FUNCTIONS="['_diff_create', '_diff_apply', '_free']" +# Note: Instead of the above explicit EXPORTED_FUNCTIONS, the following causes ~7x wasm file size: +#-s LINKABLE=1 -s EXPORT_ALL=1 + +default: $(TARGET) + +$(OBJS): include + +include: + mkdir include + cp -r /usr/include/boost include/boost + +$(TARGET): $(OBJS) + $(CXX) $(LDFLAGS) $(OBJS) -o $(TARGETJS) + cp $(TARGETJS) $(TARGET) ../html/ + +diff.o: ../diff.cpp + $(CXX) -c $< $(CXXFLAGS) -o $@ + # run again in case em++ just asked to re-run (on pbuilder/buildd) + test -e $@ || $(CXX) -c $< $(CXXFLAGS) -o $@ + +clean: + -rm -f *.o *.js *.wasm *.html + -rm -rf include |