@@ -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
@@ -55,40 +62,47 @@ BITCODE_FILES = out/sqlite3.bc out/extension-functions.bc out/custom_extensions.
5562
5663OUTPUT_WRAPPER_FILES = src/shell-pre.js src/shell-post.js
5764
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+
5872all : optimized debug worker
5973
6074.PHONY : debug
6175debug : dist/sql-asm-debug.js dist/sql-wasm-debug.js
6276
63- dist/sql-asm-debug.js : $(BITCODE_FILES ) $(OUTPUT_WRAPPER_FILES ) out/api.js src/exported_functions.json src/exported_runtime_methods.json
64- $(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 $@
6579 mv $@ out/tmp-raw.js
6680 cat src/shell-pre.js out/tmp-raw.js src/shell-post.js > $@
6781 rm out/tmp-raw.js
6882
69- dist/sql-wasm-debug.js : $(BITCODE_FILES ) $(OUTPUT_WRAPPER_FILES ) out/api.js src/exported_functions.json src/exported_runtime_methods.json
70- $(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 $@
7185 mv $@ out/tmp-raw.js
7286 cat src/shell-pre.js out/tmp-raw.js src/shell-post.js > $@
7387 rm out/tmp-raw.js
7488
7589.PHONY : optimized
7690optimized : dist/sql-asm.js dist/sql-wasm.js dist/sql-asm-memory-growth.js
7791
78- dist/sql-asm.js : $(BITCODE_FILES ) $(OUTPUT_WRAPPER_FILES ) out/api.js src/exported_functions.json src/exported_runtime_methods.json
79- $(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 $@
8094 mv $@ out/tmp-raw.js
8195 cat src/shell-pre.js out/tmp-raw.js src/shell-post.js > $@
8296 rm out/tmp-raw.js
8397
84- dist/sql-wasm.js : $(BITCODE_FILES ) $(OUTPUT_WRAPPER_FILES ) out/api.js src/exported_functions.json src/exported_runtime_methods.json
85- $(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 $@
86100 mv $@ out/tmp-raw.js
87101 cat src/shell-pre.js out/tmp-raw.js src/shell-post.js > $@
88102 rm out/tmp-raw.js
89103
90- dist/sql-asm-memory-growth.js : $(BITCODE_FILES ) $(OUTPUT_WRAPPER_FILES ) out/api.js src/exported_functions.json src/exported_runtime_methods.json
91- $(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 $@
92106 mv $@ out/tmp-raw.js
93107 cat src/shell-pre.js out/tmp-raw.js src/shell-post.js > $@
94108 rm out/tmp-raw.js
@@ -117,14 +131,14 @@ dist/worker.sql-wasm-debug.js: dist/sql-wasm-debug.js out/worker.js
117131# 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
118132# even though we would have already generated it with our sql-wasm.js target above.
119133# This would be made easier if this is implemented: https://github.com/emscripten-core/emscripten/issues/8506
120- # 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
121135# $(EMCC) $(EMFLAGS) $(EMFLAGS_OPTIMIZED) -s ENVIRONMENT=worker -s $(EMFLAGS_WASM) $(BITCODE_FILES) --pre-js out/api.js -o out/sql-wasm.js
122136# mv out/sql-wasm.js out/tmp-raw.js
123137# cat src/shell-pre.js out/tmp-raw.js src/shell-post.js out/worker.js > $@
124138# #mv out/sql-wasm.wasm dist/sql-wasm.wasm
125139# rm out/tmp-raw.js
126140
127- # 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
128142# $(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
129143# mv out/sql-wasm-debug.js out/tmp-raw.js
130144# cat src/shell-pre.js out/tmp-raw.js src/shell-post.js out/worker.js > $@
0 commit comments