aboutsummaryrefslogtreecommitdiff
path: root/makefile
diff options
context:
space:
mode:
author深淵の鴿子 <71170059+ZerxZ@users.noreply.github.com>2024-10-27 20:51:48 -0700
committerGitHub <noreply@github.com>2024-10-28 11:51:48 +0800
commit3387abbfe072cbfe1ed1e7a3d71668603831591b (patch)
tree22a7601ed657750ae57ad45d5d3ee8f6d88b18f3 /makefile
parent1334c0ae67fdf4cb1377e0e7a3ef291f5cf694c0 (diff)
downloadyuescript-3387abbfe072cbfe1ed1e7a3d71668603831591b.tar.gz
yuescript-3387abbfe072cbfe1ed1e7a3d71668603831591b.tar.bz2
yuescript-3387abbfe072cbfe1ed1e7a3d71668603831591b.zip
Add Support WASM ESM and CommonJs module, Typescript. (#176)
Diffstat (limited to 'makefile')
-rw-r--r--makefile122
1 files changed, 121 insertions, 1 deletions
diff --git a/makefile b/makefile
index 49698fb..aa9bc4a 100644
--- a/makefile
+++ b/makefile
@@ -207,11 +207,131 @@ endif
207 @echo -n "Total build time: " 207 @echo -n "Total build time: "
208 @$(END_TIME) 208 @$(END_TIME)
209 209
210.PHONY: wasm-node
211wasm-node: clean
212 @$(MAKE) generic CC='emcc' AR='emar rcu' RANLIB='emranlib' -C $(SRC_PATH)/3rdParty/lua
213 @mkdir -p wasm/dist
214 @mkdir -p wasm/dist/esm
215 @mkdir -p wasm/dist/cjs
216 # ESM Module
217 @emcc $(SRC_PATH)/yue_wasm.cpp \
218 $(SRC_PATH)/yuescript/ast.cpp \
219 $(SRC_PATH)/yuescript/yue_ast.cpp \
220 $(SRC_PATH)/yuescript/parser.cpp \
221 $(SRC_PATH)/yuescript/yue_compiler.cpp \
222 $(SRC_PATH)/yuescript/yue_parser.cpp \
223 $(SRC_PATH)/yuescript/yuescript.cpp \
224 $(SRC_PATH)/3rdParty/lua/liblua.a \
225 -O2 \
226 -o wasm/dist/esm/yuescript.mjs \
227 -I $(SRC_PATH) \
228 -I $(SRC_PATH)/3rdParty/lua \
229 -std=c++17 \
230 --bind \
231 -fexceptions \
232 -Wno-deprecated-declarations \
233 -gsource-map \
234 --emit-tsd="yuescript.d.ts" \
235 -s EXPORT_NAME="'_createYuescriptModule'" \
236 -s EXPORT_EXCEPTION_HANDLING_HELPERS \
237 -s EXCEPTION_CATCHING_ALLOWED=['we only want to allow exception handling in side modules'] \
238 -sEXPORTED_RUNTIME_METHODS='wasmTable,ERRNO_CODES' \
239 -s FORCE_FILESYSTEM=1 \
240 -s TOTAL_MEMORY=20971520 \
241 -s EXPORTED_RUNTIME_METHODS='["ccall", "cwrap"]' \
242 -s EXPORT_ALL=1 \
243 -s FS_DEBUG=1 \
244 -s STACK_SIZE=5MB \
245 -s AUTO_JS_LIBRARIES=0 \
246 -s AUTO_NATIVE_LIBRARIES=0 \
247 -s NODEJS_CATCH_EXIT=0 \
248 -s NODEJS_CATCH_REJECTION=0 \
249 -sGL_WORKAROUND_SAFARI_GETCONTEXT_BUG=0 \
250 -s USE_ZLIB \
251 -s USE_BZIP2 \
252 -s WASM_BIGINT \
253 -s MODULARIZE=1 \
254 -s LZ4=1
255 # CommonJS Module
256 @emcc $(SRC_PATH)/yue_wasm.cpp \
257 $(SRC_PATH)/yuescript/ast.cpp \
258 $(SRC_PATH)/yuescript/yue_ast.cpp \
259 $(SRC_PATH)/yuescript/parser.cpp \
260 $(SRC_PATH)/yuescript/yue_compiler.cpp \
261 $(SRC_PATH)/yuescript/yue_parser.cpp \
262 $(SRC_PATH)/yuescript/yuescript.cpp \
263 $(SRC_PATH)/3rdParty/lua/liblua.a \
264 -O2 \
265 -o wasm/dist/cjs/yuescript.cjs \
266 --emit-tsd="yuescript.d.ts" \
267 -I $(SRC_PATH) \
268 -I $(SRC_PATH)/3rdParty/lua \
269 -std=c++17 \
270 --bind \
271 -fexceptions \
272 -Wno-deprecated-declarations \
273 -gsource-map \
274 -s EXPORT_NAME="'_createYuescriptModule'" \
275 -s EXPORT_EXCEPTION_HANDLING_HELPERS \
276 -s EXCEPTION_CATCHING_ALLOWED=['we only want to allow exception handling in side modules'] \
277 -sEXPORTED_RUNTIME_METHODS='wasmTable,ERRNO_CODES' \
278 -s FORCE_FILESYSTEM=1 \
279 -s TOTAL_MEMORY=20971520 \
280 -s EXPORTED_RUNTIME_METHODS='["ccall", "cwrap"]' \
281 -s EXPORT_ALL=1 \
282 -s FS_DEBUG=1 \
283 -s STACK_SIZE=5MB \
284 -s AUTO_JS_LIBRARIES=0 \
285 -s AUTO_NATIVE_LIBRARIES=0 \
286 -s NODEJS_CATCH_EXIT=0 \
287 -s NODEJS_CATCH_REJECTION=0 \
288 -sGL_WORKAROUND_SAFARI_GETCONTEXT_BUG=0 \
289 -s USE_ZLIB \
290 -s USE_BZIP2 \
291 -s WASM_BIGINT\
292 -s MODULARIZE=1\
293 -s LZ4=1
294 @${MAKE} clean
295
210.PHONY: wasm 296.PHONY: wasm
211wasm: clean 297wasm: clean
212 @$(MAKE) generic CC='emcc' AR='emar rcu' RANLIB='emranlib' -C $(SRC_PATH)/3rdParty/lua 298 @$(MAKE) generic CC='emcc' AR='emar rcu' RANLIB='emranlib' -C $(SRC_PATH)/3rdParty/lua
213 @mkdir -p doc/docs/.vuepress/public/js 299 @mkdir -p doc/docs/.vuepress/public/js
214 @emcc $(SRC_PATH)/yue_wasm.cpp $(SRC_PATH)/yuescript/ast.cpp $(SRC_PATH)/yuescript/yue_ast.cpp $(SRC_PATH)/yuescript/parser.cpp $(SRC_PATH)/yuescript/yue_compiler.cpp $(SRC_PATH)/yuescript/yue_parser.cpp $(SRC_PATH)/yuescript/yuescript.cpp $(SRC_PATH)/3rdParty/lua/liblua.a -O2 -o doc/docs/.vuepress/public/js/yuescript.js -I $(SRC_PATH) -I $(SRC_PATH)/3rdParty/lua -std=c++17 --bind -fexceptions -Wno-deprecated-declarations 300 @emcc $(SRC_PATH)/yue_wasm.cpp \
301 $(SRC_PATH)/yuescript/ast.cpp \
302 $(SRC_PATH)/yuescript/yue_ast.cpp \
303 $(SRC_PATH)/yuescript/parser.cpp \
304 $(SRC_PATH)/yuescript/yue_compiler.cpp \
305 $(SRC_PATH)/yuescript/yue_parser.cpp \
306 $(SRC_PATH)/yuescript/yuescript.cpp \
307 $(SRC_PATH)/3rdParty/lua/liblua.a \
308 -O2 \
309 -o doc/docs/.vuepress/public/js/yuescript.js \
310 -I $(SRC_PATH) \
311 -I $(SRC_PATH)/3rdParty/lua \
312 -std=c++17 \
313 --bind \
314 -fexceptions \
315 -Wno-deprecated-declarations \
316 -s EXPORT_EXCEPTION_HANDLING_HELPERS \
317 -s EXCEPTION_CATCHING_ALLOWED=['we only want to allow exception handling in side modules'] \
318 -sEXPORTED_RUNTIME_METHODS='wasmTable,ERRNO_CODES' \
319 -s FORCE_FILESYSTEM=1 \
320 -s TOTAL_MEMORY=20971520 \
321 -s EXPORTED_RUNTIME_METHODS='["ccall", "cwrap"]' \
322 -s EXPORT_ALL=1 \
323 -s FS_DEBUG=1 \
324 -s STACK_SIZE=5MB \
325 -s AUTO_JS_LIBRARIES=0 \
326 -s AUTO_NATIVE_LIBRARIES=0 \
327 -s NODEJS_CATCH_EXIT=0 \
328 -s NODEJS_CATCH_REJECTION=0 \
329 -sGL_WORKAROUND_SAFARI_GETCONTEXT_BUG=0 \
330 -s USE_ZLIB \
331 -s USE_BZIP2 \
332 -s WASM_BIGINT\
333 -s MODULARIZE=1 \
334 -s LZ4=1
215 @${MAKE} clean 335 @${MAKE} clean
216 336
217# Debug build for gdb debugging 337# Debug build for gdb debugging