diff --git a/Makefile.envs b/Makefile.envs index d238bc1e0..7433a6fc6 100644 --- a/Makefile.envs +++ b/Makefile.envs @@ -1,8 +1,12 @@ export PYVERSION ?= 3.11.3 export PYODIDE_EMSCRIPTEN_VERSION ?= 3.1.39 +ifdef CPYTHON_DEBUG + export CPYTHON_ABI_FLAGS=d +endif + export PLATFORM_TRIPLET=wasm32-emscripten -export SYSCONFIG_NAME=_sysconfigdata__emscripten_$(PLATFORM_TRIPLET) +export SYSCONFIG_NAME=_sysconfigdata_$(CPYTHON_ABI_FLAGS)_emscripten_$(PLATFORM_TRIPLET) # BASH_ENV tells bash to run pyodide_env.sh on startup, which sets various # environment variables. The next line instructs make to use bash to run each @@ -39,7 +43,7 @@ export HOSTSITEPACKAGES=$(PYODIDE_ROOT)/packages/.artifacts/lib/python$(PYMAJOR) export WASM_LIBRARY_DIR=$(PYODIDE_ROOT)/packages/.libs export PKG_CONFIG_PATH=$(PYODIDE_ROOT)/packages/.libs/lib/pkgconfig -export PYTHONINCLUDE=$(PYODIDE_ROOT)/cpython/installs/python-$(PYVERSION)/include/python$(PYMAJOR).$(PYMINOR) +export PYTHONINCLUDE=$(PYODIDE_ROOT)/cpython/installs/python-$(PYVERSION)/include/python$(PYMAJOR).$(PYMINOR)$(CPYTHON_ABI_FLAGS) # Use env variable if defined, otherwise fallback to './' export PYODIDE_BASE_URL?=./ @@ -132,7 +136,7 @@ export MAIN_MODULE_LDFLAGS= $(LDFLAGS_BASE) \ -s NODEJS_CATCH_EXIT=0 \ -s NODEJS_CATCH_REJECTION=0 \ \ - -lpython$(PYMAJOR).$(PYMINOR) \ + -lpython$(PYMAJOR).$(PYMINOR)$(CPYTHON_ABI_FLAGS) \ -lffi \ -lstdc++ \ -lidbfs.js \ diff --git a/cpython/Makefile b/cpython/Makefile index c163f5c4d..364cabe5d 100644 --- a/cpython/Makefile +++ b/cpython/Makefile @@ -8,12 +8,16 @@ PYTHON_CFLAGS=$(CFLAGS_BASE) -DPY_CALL_TRAMPOLINE BUILD=$(CPYTHONROOT)/build/Python-$(PYVERSION) INSTALL=$(CPYTHONINSTALL) TARBALL=$(ROOT)/downloads/Python-$(PYVERSION).tgz -LIB=libpython$(PYMAJOR).$(PYMINOR).a +LIB=libpython$(PYMAJOR).$(PYMINOR)$(CPYTHON_ABI_FLAGS).a FFIBUILD=$(ROOT)/build/libffi LIBFFIREPO=https://github.com/libffi/libffi LIBFFI_COMMIT=f08493d249d2067c8b3207ba46693dd858f95db3 +ifdef CPYTHON_DEBUG + MAYBE_WITH_PYDEBUG=--with-pydebug +endif + all: $(INSTALL)/lib/$(LIB) $(INSTALL)/lib/libffi.a @@ -98,6 +102,7 @@ $(BUILD)/Makefile: $(BUILD)/.patched --build=$(shell $(BUILD)/config.guess) \ --prefix=$(INSTALL) \ --with-build-python=$$(which python3.11) \ + $(MAYBE_WITH_PYDEBUG) \ )