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