@@ -37,6 +37,13 @@ EMFLAGS = \
3737 -s SINGLE_FILE=0 \
3838 -s NODEJS_CATCH_EXIT=0
3939
40+ EMFLAGS_ASM = \
41+ -s WASM=0
42+
43+ EMFLAGS_ASM_MEMORY_GROWTH = \
44+ -s WASM=0 \
45+ -s ALLOW_MEMORY_GROWTH=1
46+
4047EMFLAGS_WASM = \
4148 -s WASM=1 \
4249 -s ALLOW_MEMORY_GROWTH=1
@@ -52,42 +59,50 @@ EMFLAGS_DEBUG = \
5259 -O1
5360
5461BITCODE_FILES = out/sqlite3.bc out/extension-functions.bc
62+
5563OUTPUT_WRAPPER_FILES = src/shell-pre.js src/shell-post.js
5664
65+ OUTPUT_API_FILES = out/api.js
66+
67+ EMFLAGS_PRE_JS_FILES = \
68+ --pre-js out/api.js
69+
70+ EXPORTED_METHODS_JSON_FILES = src/exported_functions.json src/exported_runtime_methods.json
71+
5772all : optimized debug worker
5873
5974.PHONY : debug
6075debug : dist/sql-asm-debug.js dist/sql-wasm-debug.js
6176
62- dist/sql-asm-debug.js : $(BITCODE_FILES ) $(OUTPUT_WRAPPER_FILES ) out/api.js src/exported_functions.json src/exported_runtime_methods.json
63- $(EMCC ) $(EMFLAGS ) $(EMFLAGS_DEBUG ) -s WASM=0 $(BITCODE_FILES ) --pre-js out/api.js -o $@
77+ dist/sql-asm-debug.js : $(BITCODE_FILES ) $(OUTPUT_WRAPPER_FILES ) $( OUTPUT_API_FILES ) $( EXPORTED_METHODS_JSON_FILES )
78+ $(EMCC ) $(EMFLAGS ) $(EMFLAGS_DEBUG ) $( EMFLAGS_ASM ) $(BITCODE_FILES ) $( EMFLAGS_PRE_JS_FILES ) -o $@
6479 mv $@ out/tmp-raw.js
6580 cat src/shell-pre.js out/tmp-raw.js src/shell-post.js > $@
6681 rm out/tmp-raw.js
6782
68- dist/sql-wasm-debug.js : $(BITCODE_FILES ) $(OUTPUT_WRAPPER_FILES ) out/api.js src/exported_functions.json src/exported_runtime_methods.json
69- $(EMCC ) $(EMFLAGS ) $(EMFLAGS_DEBUG ) $(EMFLAGS_WASM ) $(BITCODE_FILES ) --pre-js out/api.js -o $@
83+ dist/sql-wasm-debug.js : $(BITCODE_FILES ) $(OUTPUT_WRAPPER_FILES ) $( OUTPUT_API_FILES ) $( EXPORTED_METHODS_JSON_FILES )
84+ $(EMCC ) $(EMFLAGS ) $(EMFLAGS_DEBUG ) $(EMFLAGS_WASM ) $(BITCODE_FILES ) $( EMFLAGS_PRE_JS_FILES ) -o $@
7085 mv $@ out/tmp-raw.js
7186 cat src/shell-pre.js out/tmp-raw.js src/shell-post.js > $@
7287 rm out/tmp-raw.js
7388
7489.PHONY : optimized
7590optimized : dist/sql-asm.js dist/sql-wasm.js dist/sql-asm-memory-growth.js
7691
77- dist/sql-asm.js : $(BITCODE_FILES ) $(OUTPUT_WRAPPER_FILES ) out/api.js src/exported_functions.json src/exported_runtime_methods.json
78- $(EMCC ) $(EMFLAGS ) $(EMFLAGS_OPTIMIZED ) -s WASM=0 $(BITCODE_FILES ) --pre-js out/api.js -o $@
92+ dist/sql-asm.js : $(BITCODE_FILES ) $(OUTPUT_WRAPPER_FILES ) $( OUTPUT_API_FILES ) $( EXPORTED_METHODS_JSON_FILES )
93+ $(EMCC ) $(EMFLAGS ) $(EMFLAGS_OPTIMIZED ) $( EMFLAGS_ASM ) $(BITCODE_FILES ) $( EMFLAGS_PRE_JS_FILES ) -o $@
7994 mv $@ out/tmp-raw.js
8095 cat src/shell-pre.js out/tmp-raw.js src/shell-post.js > $@
8196 rm out/tmp-raw.js
8297
83- dist/sql-wasm.js : $(BITCODE_FILES ) $(OUTPUT_WRAPPER_FILES ) out/api.js src/exported_functions.json src/exported_runtime_methods.json
84- $(EMCC ) $(EMFLAGS ) $(EMFLAGS_OPTIMIZED ) $(EMFLAGS_WASM ) $(BITCODE_FILES ) --pre-js out/api.js -o $@
98+ dist/sql-wasm.js : $(BITCODE_FILES ) $(OUTPUT_WRAPPER_FILES ) $( OUTPUT_API_FILES ) $( EXPORTED_METHODS_JSON_FILES )
99+ $(EMCC ) $(EMFLAGS ) $(EMFLAGS_OPTIMIZED ) $(EMFLAGS_WASM ) $(BITCODE_FILES ) $( EMFLAGS_PRE_JS_FILES ) -o $@
85100 mv $@ out/tmp-raw.js
86101 cat src/shell-pre.js out/tmp-raw.js src/shell-post.js > $@
87102 rm out/tmp-raw.js
88103
89- dist/sql-asm-memory-growth.js : $(BITCODE_FILES ) $(OUTPUT_WRAPPER_FILES ) out/api.js src/exported_functions.json src/exported_runtime_methods.json
90- $(EMCC ) $(EMFLAGS ) $(EMFLAGS_OPTIMIZED ) -s WASM=0 -s ALLOW_MEMORY_GROWTH=1 $(BITCODE_FILES ) --pre-js out/api.js -o $@
104+ dist/sql-asm-memory-growth.js : $(BITCODE_FILES ) $(OUTPUT_WRAPPER_FILES ) $( OUTPUT_API_FILES ) $( EXPORTED_METHODS_JSON_FILES )
105+ $(EMCC ) $(EMFLAGS ) $(EMFLAGS_OPTIMIZED ) $( EMFLAGS_ASM_MEMORY_GROWTH ) $(BITCODE_FILES ) $( EMFLAGS_PRE_JS_FILES ) -o $@
91106 mv $@ out/tmp-raw.js
92107 cat src/shell-pre.js out/tmp-raw.js src/shell-post.js > $@
93108 rm out/tmp-raw.js
@@ -116,14 +131,14 @@ dist/worker.sql-wasm-debug.js: dist/sql-wasm-debug.js out/worker.js
116131# However, since we can't tell emcc that we don't need the wasm generated, and just want the wrapper, we have to pay to have the .wasm generated
117132# even though we would have already generated it with our sql-wasm.js target above.
118133# This would be made easier if this is implemented: https://github.com/emscripten-core/emscripten/issues/8506
119- # dist/worker.sql-wasm.js: $(BITCODE_FILES) $(OUTPUT_WRAPPER_FILES) out/api.js out/worker.js src/exported_functions.json src/exported_runtime_methods.json dist/sql-wasm-debug.wasm
134+ # dist/worker.sql-wasm.js: $(BITCODE_FILES) $(OUTPUT_WRAPPER_FILES) out/api.js out/worker.js $(EXPORTED_METHODS_JSON_FILES) dist/sql-wasm-debug.wasm
120135# $(EMCC) $(EMFLAGS) $(EMFLAGS_OPTIMIZED) -s ENVIRONMENT=worker -s $(EMFLAGS_WASM) $(BITCODE_FILES) --pre-js out/api.js -o out/sql-wasm.js
121136# mv out/sql-wasm.js out/tmp-raw.js
122137# cat src/shell-pre.js out/tmp-raw.js src/shell-post.js out/worker.js > $@
123138# #mv out/sql-wasm.wasm dist/sql-wasm.wasm
124139# rm out/tmp-raw.js
125140
126- # dist/worker.sql-wasm-debug.js: $(BITCODE_FILES) $(OUTPUT_WRAPPER_FILES) out/api.js out/worker.js src/exported_functions.json src/exported_runtime_methods.json dist/sql-wasm-debug.wasm
141+ # dist/worker.sql-wasm-debug.js: $(BITCODE_FILES) $(OUTPUT_WRAPPER_FILES) out/api.js out/worker.js $(EXPORTED_METHODS_JSON_FILES) dist/sql-wasm-debug.wasm
127142# $(EMCC) -s ENVIRONMENT=worker $(EMFLAGS) $(EMFLAGS_DEBUG) -s ENVIRONMENT=worker -s WASM_BINARY_FILE=sql-wasm-foo.debug $(EMFLAGS_WASM) $(BITCODE_FILES) --pre-js out/api.js -o out/sql-wasm-debug.js
128143# mv out/sql-wasm-debug.js out/tmp-raw.js
129144# cat src/shell-pre.js out/tmp-raw.js src/shell-post.js out/worker.js > $@
0 commit comments