1
1
# Note: Last tested with version 1.38.15 of Emscripten
2
2
3
+ # TODO: Emit a file showing which version of emcc and SQLite was used to compile the emitted output.
4
+ # TODO: Make it easier to use a newer version of Sqlite.
5
+ # TODO: Create a release on Github with these compiled assets rather than checking them in
6
+ # TODO: Consider creating different files based on browser vs module usage: https://github.com/vuejs/vue/tree/dev/dist
7
+
3
8
EMCC =emcc
4
9
5
10
CFLAGS =-O2 -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_DISABLE_LFS -DLONGDOUBLE_TYPE=double -DSQLITE_THREADSAFE=0 -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS
@@ -25,106 +30,85 @@ EMFLAGS_DEBUG = \
25
30
-s INLINING_LIMIT=10 \
26
31
-O1
27
32
28
- BITCODE_FILES = c /sqlite3.bc c /extension-functions.bc
33
+ BITCODE_FILES = out /sqlite3.bc out /extension-functions.bc
29
34
OUTPUT_WRAPPER_FILES = src/shell-pre.js src/shell-post.js
30
35
31
36
all : optimized debug worker
32
37
33
- # TODO: Emit a file showing which version of emcc and SQLite was used to compile the emitted output.
34
- # TODO: Make it easier to use a newer version of Sqlite.
35
-
36
38
.PHONY : debug
37
- debug : js/sql-asm-debug.js js/sql-wasm-debug.js
38
-
39
- js/sql-asm-debug.js : $(BITCODE_FILES ) $(OUTPUT_WRAPPER_FILES ) js/api.js exported_functions exported_runtime_methods
40
- $(EMCC ) $(EMFLAGS ) $(EMFLAGS_DEBUG ) -s WASM=0 $(BITCODE_FILES ) --pre-js js/api.js -o $@
41
- mv $@ js/tmp-raw.js
42
- cat src/shell-pre.js js/tmp-raw.js src/shell-post.js > $@
43
- rm js/tmp-raw.js
39
+ debug : dist/sql-asm-debug.js dist/sql-wasm-debug.js
44
40
45
- js /sql-wasm -debug.js : $(BITCODE_FILES ) $(OUTPUT_WRAPPER_FILES ) js /api.js exported_functions exported_runtime_methods
46
- $(EMCC ) $(EMFLAGS ) $(EMFLAGS_DEBUG ) $( EMFLAGS_WASM ) $(BITCODE_FILES ) --pre-js js /api.js -o $@
47
- mv $@ js /tmp-raw.js
48
- cat src/shell-pre.js js /tmp-raw.js src/shell-post.js > $@
49
- rm js /tmp-raw.js
41
+ dist /sql-asm -debug.js : $(BITCODE_FILES ) $(OUTPUT_WRAPPER_FILES ) out /api.js exported_functions exported_runtime_methods
42
+ $(EMCC ) $(EMFLAGS ) $(EMFLAGS_DEBUG ) -s WASM=0 $(BITCODE_FILES ) --pre-js out /api.js -o $@
43
+ mv $@ out /tmp-raw.js
44
+ cat src/shell-pre.js out /tmp-raw.js src/shell-post.js > $@
45
+ rm out /tmp-raw.js
50
46
47
+ dist/sql-wasm-debug.js : $(BITCODE_FILES ) $(OUTPUT_WRAPPER_FILES ) out/api.js exported_functions exported_runtime_methods
48
+ $(EMCC ) $(EMFLAGS ) $(EMFLAGS_DEBUG ) $(EMFLAGS_WASM ) $(BITCODE_FILES ) --pre-js out/api.js -o $@
49
+ mv $@ out/tmp-raw.js
50
+ cat src/shell-pre.js out/tmp-raw.js src/shell-post.js > $@
51
+ rm out/tmp-raw.js
51
52
52
53
.PHONY : optimized
53
- optimized : js /sql-asm.js js /sql-wasm.js js /sql-asm-memory-growth.js
54
+ optimized : dist /sql-asm.js dist /sql-wasm.js dist /sql-asm-memory-growth.js
54
55
55
- js /sql-asm.js : $(BITCODE_FILES ) $(OUTPUT_WRAPPER_FILES ) js /api.js exported_functions exported_runtime_methods
56
- $(EMCC ) $(EMFLAGS ) $(EMFLAGS_OPTIMIZED ) -s WASM=0 $(BITCODE_FILES ) --pre-js js /api.js -o $@
57
- mv $@ js /tmp-raw.js
58
- cat src/shell-pre.js js /tmp-raw.js src/shell-post.js > $@
59
- rm js /tmp-raw.js
56
+ dist /sql-asm.js : $(BITCODE_FILES ) $(OUTPUT_WRAPPER_FILES ) out /api.js exported_functions exported_runtime_methods
57
+ $(EMCC ) $(EMFLAGS ) $(EMFLAGS_OPTIMIZED ) -s WASM=0 $(BITCODE_FILES ) --pre-js out /api.js -o $@
58
+ mv $@ out /tmp-raw.js
59
+ cat src/shell-pre.js out /tmp-raw.js src/shell-post.js > $@
60
+ rm out /tmp-raw.js
60
61
61
- js /sql-wasm.js : $(BITCODE_FILES ) $(OUTPUT_WRAPPER_FILES ) js /api.js exported_functions exported_runtime_methods
62
- $(EMCC ) $(EMFLAGS ) $(EMFLAGS_OPTIMIZED ) $(EMFLAGS_WASM ) $(BITCODE_FILES ) --pre-js js /api.js -o $@
63
- mv $@ js /tmp-raw.js
64
- cat src/shell-pre.js js /tmp-raw.js src/shell-post.js > $@
65
- rm js /tmp-raw.js
62
+ dist /sql-wasm.js : $(BITCODE_FILES ) $(OUTPUT_WRAPPER_FILES ) out /api.js exported_functions exported_runtime_methods
63
+ $(EMCC ) $(EMFLAGS ) $(EMFLAGS_OPTIMIZED ) $(EMFLAGS_WASM ) $(BITCODE_FILES ) --pre-js out /api.js -o $@
64
+ mv $@ out /tmp-raw.js
65
+ cat src/shell-pre.js out /tmp-raw.js src/shell-post.js > $@
66
+ rm out /tmp-raw.js
66
67
67
- js /sql-asm-memory-growth.js : $(BITCODE_FILES ) $(OUTPUT_WRAPPER_FILES ) js /api.js exported_functions exported_runtime_methods
68
- $(EMCC ) $(EMFLAGS ) $(EMFLAGS_OPTIMIZED ) -s WASM=0 -s ALLOW_MEMORY_GROWTH=1 $(BITCODE_FILES ) --pre-js js /api.js -o $@
69
- mv $@ js /tmp-raw.js
70
- cat src/shell-pre.js js /tmp-raw.js src/shell-post.js > $@
71
- rm js /tmp-raw.js
68
+ dist /sql-asm-memory-growth.js : $(BITCODE_FILES ) $(OUTPUT_WRAPPER_FILES ) out /api.js exported_functions exported_runtime_methods
69
+ $(EMCC ) $(EMFLAGS ) $(EMFLAGS_OPTIMIZED ) -s WASM=0 -s ALLOW_MEMORY_GROWTH=1 $(BITCODE_FILES ) --pre-js out /api.js -o $@
70
+ mv $@ out /tmp-raw.js
71
+ cat src/shell-pre.js out /tmp-raw.js src/shell-post.js > $@
72
+ rm out /tmp-raw.js
72
73
73
74
74
75
# Web worker API
75
76
.PHONY : worker
76
- worker : js /worker.sql-asm.js js /worker.sql-asm-debug.js js /worker.sql-wasm.js js /worker.sql-wasm-debug.js
77
+ worker : dist /worker.sql-asm.js dist /worker.sql-asm-debug.js dist /worker.sql-wasm.js dist /worker.sql-wasm-debug.js
77
78
78
- js /worker.js : src/worker.coffee
79
+ out /worker.js : src/worker.coffee
79
80
cat $^ | coffee --bare --compile --stdio > $@
80
81
81
- js /worker.sql-asm.js : js /sql-asm.js js /worker.js
82
+ dist /worker.sql-asm.js : dist /sql-asm.js out /worker.js
82
83
cat $^ > $@
83
84
84
- js /worker.sql-asm-debug.js : js /sql-asm-debug.js js /worker.js
85
+ dist /worker.sql-asm-debug.js : dist /sql-asm-debug.js out /worker.js
85
86
cat $^ > $@
86
87
87
- js /worker.sql-wasm.js : js /sql-wasm.js js /worker.js
88
+ dist /worker.sql-wasm.js : dist /sql-wasm.js out /worker.js
88
89
cat $^ > $@
89
90
90
- js /worker.sql-wasm-debug.js : js /sql-wasm-debug.js js /worker.js
91
+ dist /worker.sql-wasm-debug.js : dist /sql-wasm-debug.js out /worker.js
91
92
cat $^ > $@
92
93
93
- # TODO: Replace Coffeescript with Typescript or raw JS
94
- js/api.js : src/output-pre.js src/api.coffee src/exports.coffee src/api-data.coffee src/output-post.js
94
+ out/api.js : src/output-pre.js src/api.coffee src/exports.coffee src/api-data.coffee src/output-post.js
95
95
cat src/api.coffee src/exports.coffee src/api-data.coffee | coffee --bare --compile --stdio > $@
96
- cat src/output-pre.js $@ src/output-post.js > js /api-wrapped.js
97
- mv js /api-wrapped.js $@
96
+ cat src/output-pre.js $@ src/output-post.js > out /api-wrapped.js
97
+ mv out /api-wrapped.js $@
98
98
99
- c /sqlite3.bc : c /sqlite3.c
99
+ out /sqlite3.bc : sqlite /sqlite3.c
100
100
# Generate llvm bitcode
101
- $(EMCC ) $(CFLAGS ) c /sqlite3.c -o c /sqlite3.bc
101
+ $(EMCC ) $(CFLAGS ) sqlite /sqlite3.c -o out /sqlite3.bc
102
102
103
- c /extension-functions.bc : c /extension-functions.c
104
- $(EMCC ) $(CFLAGS ) -s LINKABLE=1 c /extension-functions.c -o c /extension-functions.bc
103
+ out /extension-functions.bc : sqlite /extension-functions.c
104
+ $(EMCC ) $(CFLAGS ) -s LINKABLE=1 sqlite /extension-functions.c -o out /extension-functions.bc
105
105
106
106
# TODO: This target appears to be unused. If we re-instatate it, we'll need to add more files inside of the JS folder
107
- # module.tar.gz: test package.json AUTHORS README.md js /sql-asm.js
107
+ # module.tar.gz: test package.json AUTHORS README.md dist /sql-asm.js
108
108
# tar --create --gzip $^ > $@
109
109
110
110
.PHONY : clean
111
111
clean :
112
- rm -f c/sqlite3.bc \
113
- c/extension-functions.bc \
114
- js/sql-asm.js \
115
- js/sql-asm-memory-growth.js \
116
- js/sql.wasm \
117
- js/sql-asm-debug.js \
118
- js/sql-debug.wasm \
119
- js/sql-wasm.js \
120
- js/sql-wasm.wasm \
121
- js/sql-wasm-debug.js \
122
- js/sql-wasm-debug.wasm \
123
- js/api.js \
124
- js/worker.js \
125
- js/worker.sql-asm.js \
126
- js/worker.sql-asm-debug.js \
127
- js/worker.sql-wasm.js \
128
- js/worker.sql-wasm-debug.js
112
+ rm -f out/* dist/*
129
113
130
114
0 commit comments