ac_sys_emscripten_target=browser ;; #(
node) :
ac_sys_emscripten_target=node ;; #(
+ browser-debug) :
+ ac_sys_emscripten_target=browser-debug ;; #(
+ node-debug) :
+ ac_sys_emscripten_target=node-debug ;; #(
*) :
as_fn_error $? "Invalid argument: --with-emscripten-target=browser|node" "$LINENO" 5
;;
else
case $ac_sys_system/$ac_sys_emscripten_target in #(
- Emscripten/browser) :
+ Emscripten/browser*) :
EXEEXT=.html ;; #(
- Emscripten/node) :
+ Emscripten/node*) :
EXEEXT=.js ;; #(
WASI/*) :
EXEEXT=.wasm ;; #(
# LIBRARY_DEPS, LINK_PYTHON_OBJS and LINK_PYTHON_DEPS variable
case $ac_sys_system/$ac_sys_emscripten_target in #(
- Emscripten/browser) :
+ Emscripten/browser*) :
LIBRARY_DEPS='$(PY3LIBRARY) $(WASM_STDLIB)' ;; #(
*) :
LIBRARY_DEPS='$(PY3LIBRARY) $(EXPORTSYMS)'
# The option disables code elimination, which increases code size of main
# binary. All objects must be built with -fPIC.
case $ac_sys_system/$ac_sys_emscripten_target in #(
- Emscripten/browser) :
+ Emscripten/browser*) :
LDFLAGS_NODIST="$LDFLAGS_NODIST -s ALLOW_MEMORY_GROWTH=1"
LINKFORSHARED="--preload-file \$(WASM_ASSETS_DIR)"
WASM_ASSETS_DIR=".\$(prefix)"
WASM_STDLIB="\$(WASM_ASSETS_DIR)/local/lib/python\$(VERSION)/os.py"
- if test "$Py_DEBUG" = 'true'; then
+ if test "$Py_DEBUG" = 'true' -o "$ac_sys_emscripten_target" = "browser-debug"; then
LDFLAGS_NODIST="$LDFLAGS_NODIST -s ASSERTIONS=1"
LINKFORSHARED="$LINKFORSHARED -gsource-map --emit-symbol-map"
else
LINKFORSHARED="$LINKFORSHARED -O2 -g0"
fi
;; #(
- Emscripten/node) :
+ Emscripten/node*) :
LDFLAGS_NODIST="$LDFLAGS_NODIST -s ALLOW_MEMORY_GROWTH=1 -s NODERAWFS=1 -s USE_PTHREADS=1"
LINKFORSHARED="-s PROXY_TO_PTHREAD=1 -s EXIT_RUNTIME=1"
CFLAGS_NODIST="$CFLAGS_NODIST -pthread"
- if test "$Py_DEBUG" = 'true'; then
+ if test "$Py_DEBUG" = 'true' -o "$ac_sys_emscripten_target" = "node-debug"; then
LDFLAGS_NODIST="$LDFLAGS_NODIST -s ASSERTIONS=1"
LINKFORSHARED="$LINKFORSHARED -gseparate-dwarf --emit-symbol-map"
else
- LINKFORSHARED="$LINKFORSHARED -O2 -gseparate-dwarf"
+ LINKFORSHARED="$LINKFORSHARED -O2 -g0"
fi
;; #(
WASI/*) :
TEST_MODULES=no
else
case $ac_sys_system/$ac_sys_emscripten_target in #(
- Emscripten/browser) :
+ Emscripten/browser*) :
TEST_MODULES=no ;; #(
*) :
TEST_MODULES=yes
py_cv_module__scproxy=n/a
py_cv_module_spwd=n/a
;; #(
- Emscripten/browser) :
+ Emscripten/browser*) :
py_cv_module_=n/a
;; #(
- Emscripten/node) :
+ Emscripten/node*) :
AS_CASE([$with_emscripten_target],
[browser], [ac_sys_emscripten_target=browser],
[node], [ac_sys_emscripten_target=node],
+dnl Debug builds with source map / dwarf symbols. Py_DEBUG builds easily
+dnl run out of stack space. Detached sybmols and map prohibit some
+dnl optimizations and increase file size. Options are undocumented so we
+dnl are free to remove them in the future.
+ [browser-debug], [ac_sys_emscripten_target=browser-debug],
+ [node-debug], [ac_sys_emscripten_target=node-debug],
[AC_MSG_ERROR([Invalid argument: --with-emscripten-target=browser|node])]
)
], [
)
], [
AS_CASE([$ac_sys_system/$ac_sys_emscripten_target],
- [Emscripten/browser], [EXEEXT=.html],
- [Emscripten/node], [EXEEXT=.js],
+ [Emscripten/browser*], [EXEEXT=.html],
+ [Emscripten/node*], [EXEEXT=.js],
[WASI/*], [EXEEXT=.wasm],
[EXEEXT=]
)
# LIBRARY_DEPS, LINK_PYTHON_OBJS and LINK_PYTHON_DEPS variable
AS_CASE([$ac_sys_system/$ac_sys_emscripten_target],
- [Emscripten/browser], [LIBRARY_DEPS='$(PY3LIBRARY) $(WASM_STDLIB)'],
+ [Emscripten/browser*], [LIBRARY_DEPS='$(PY3LIBRARY) $(WASM_STDLIB)'],
[LIBRARY_DEPS='$(PY3LIBRARY) $(EXPORTSYMS)']
)
LINK_PYTHON_DEPS='$(LIBRARY_DEPS)'
# The option disables code elimination, which increases code size of main
# binary. All objects must be built with -fPIC.
AS_CASE([$ac_sys_system/$ac_sys_emscripten_target],
- [Emscripten/browser], [
+ [Emscripten/browser*], [
LDFLAGS_NODIST="$LDFLAGS_NODIST -s ALLOW_MEMORY_GROWTH=1"
LINKFORSHARED="--preload-file \$(WASM_ASSETS_DIR)"
WASM_ASSETS_DIR=".\$(prefix)"
WASM_STDLIB="\$(WASM_ASSETS_DIR)/local/lib/python\$(VERSION)/os.py"
dnl separate-dwarf does not seem to work in Chrome DevTools Support.
- if test "$Py_DEBUG" = 'true'; then
+ if test "$Py_DEBUG" = 'true' -o "$ac_sys_emscripten_target" = "browser-debug"; then
LDFLAGS_NODIST="$LDFLAGS_NODIST -s ASSERTIONS=1"
LINKFORSHARED="$LINKFORSHARED -gsource-map --emit-symbol-map"
else
LINKFORSHARED="$LINKFORSHARED -O2 -g0"
fi
],
- [Emscripten/node], [
+ [Emscripten/node*], [
LDFLAGS_NODIST="$LDFLAGS_NODIST -s ALLOW_MEMORY_GROWTH=1 -s NODERAWFS=1 -s USE_PTHREADS=1"
LINKFORSHARED="-s PROXY_TO_PTHREAD=1 -s EXIT_RUNTIME=1"
CFLAGS_NODIST="$CFLAGS_NODIST -pthread"
- if test "$Py_DEBUG" = 'true'; then
+ if test "$Py_DEBUG" = 'true' -o "$ac_sys_emscripten_target" = "node-debug"; then
LDFLAGS_NODIST="$LDFLAGS_NODIST -s ASSERTIONS=1"
LINKFORSHARED="$LINKFORSHARED -gseparate-dwarf --emit-symbol-map"
else
- LINKFORSHARED="$LINKFORSHARED -O2 -gseparate-dwarf"
+ LINKFORSHARED="$LINKFORSHARED -O2 -g0"
fi
],
[WASI/*], [
TEST_MODULES=no
else
AS_CASE([$ac_sys_system/$ac_sys_emscripten_target],
- [Emscripten/browser], [TEST_MODULES=no],
+ [Emscripten/browser*], [TEST_MODULES=no],
[TEST_MODULES=yes]
)
fi
[CYGWIN*/*], [PY_STDLIB_MOD_SET_NA([_scproxy], [nis])],
[QNX*/*], [PY_STDLIB_MOD_SET_NA([_scproxy], [nis])],
[FreeBSD*/*], [PY_STDLIB_MOD_SET_NA([_scproxy], [spwd])],
- [Emscripten/browser], [
+ [Emscripten/browser*], [
PY_STDLIB_MOD_SET_NA(
[_ctypes],
[_curses],
],
dnl Some modules like _posixsubprocess do not work. We build them anyway
dnl so imports in tests do not fail.
- [Emscripten/node], [
+ [Emscripten/node*], [
PY_STDLIB_MOD_SET_NA(
[_ctypes],
[_curses],