also fixes hostpython paths so that pyodide can be built everywhere a clang based hostpython is available
Use PYMAJOR/PYMINOR according to Python devguide. also fixes hostpython paths so that pyodide can be built everywhere a clang based hostpython is available
export PYODIDE_EMSCRIPTEN_VERSION ?= 2.0.16
export PYODIDE_BINARYEN_VERSION ?= version_100

# BASH_ENV tells bash to run pyodide_env.sh on startup, whcih sets various
# environment variables. The next line instructs make to use bash to run each
# command.
export BASH_ENV := $(PYODIDE_ROOT)/pyodide_env.sh
SHELL := /bin/bash

export TOOLSDIR=$(PYODIDE_ROOT)/tools
export PYVERSION=3.9.5
export PYMINOR=$(basename $(PYVERSION))
export HOSTPYTHONROOT=$(shell python3.9 -c "import sys; print(sys.prefix)")
export HOSTPYTHON=$(HOSTPYTHONROOT)/bin/python3.9
export TARGETPYTHONROOT=$(PYODIDE_ROOT)/cpython/installs/python-$(PYVERSION)
export PYTHONINCLUDE=$(PYODIDE_ROOT)/cpython/installs/python-$(PYVERSION)/include/python$(PYMINOR)

# Use env variable if defined, otherwise fallback to './'
export PYODIDE_BASE_URL?=./

# This environment variable is used for packages to detect if they are built
# for pyodide during build time
export PYODIDE=1
# This is the legacy environment variable used for the aforementioned purpose
export PYODIDE_PACKAGE_ABI=1
export EM_COMPILER_WRAPPER=ccache

export OPTFLAGS=-O2
export CFLAGS_BASE=\
	$(OPTFLAGS) \
	-g \
	-fPIC \
	$(EXTRA_CFLAGS)

export LDFLAGS_BASE=\
	-s BINARYEN_EXTRA_PASSES="--pass-arg=max-func-params@61" \
	$(OPTFLAGS) \
	-s MODULARIZE=1 \
	-s EMULATE_FUNCTION_POINTER_CASTS=1 \
	-s LINKABLE=1 \
	-s EXPORT_ALL=1 \
	-s WASM=1 \
	-std=c++14 \
	-s LZ4=1 \
	-L $(CPYTHONROOT)/installs/python-$(PYVERSION)/lib/ \
	$(EXTRA_LDFLAGS)

export CXXFLAGS_BASE=

export SIDE_MODULE_LDFLAGS=	$(LDFLAGS_BASE) -s SIDE_MODULE=1
export MAIN_MODULE_LDFLAGS= $(LDFLAGS_BASE) -s MAIN_MODULE=1 \
	-s EXPORTED_FUNCTIONS='["___cxa_guard_acquire", "__ZNSt3__28ios_base4initEPv", "_main"]' \
	-lpython$(PYMINOR) \
	-lffi \
	-lsqlite3 \
	-lbz2 \
	-lstdc++ \
	-s TOTAL_MEMORY=20971520 \
	-s ALLOW_MEMORY_GROWTH=1 \
    --use-preload-plugins \
	-s USE_FREETYPE=1 \
	-s USE_LIBPNG=1 \
	--memory-init-file 0 \

export SIDE_MODULE_CXXFLAGS = $(CXXFLAGS_BASE)

export SIDE_MODULE_CFLAGS= $(CFLAGS_BASE)
export MAIN_MODULE_CFLAGS= $(CFLAGS_BASE) \
    	-Wall \
    	-Wno-warn-absolute-paths \
    	-Werror=unused-variable \
    	-Werror=sometimes-uninitialized \
    	-Werror=int-conversion \
    	-Werror=incompatible-pointer-types \
		-I$(PYTHONINCLUDE)



.output_vars:
	set

export PYVERSION ?= 3.9.5
export PYODIDE_EMSCRIPTEN_VERSION ?= 2.0.16
export PYODIDE_BINARYEN_VERSION ?= version_100

# BASH_ENV tells bash to run pyodide_env.sh on startup, whcih sets various
# environment variables. The next line instructs make to use bash to run each
# command.
export BASH_ENV := $(PYODIDE_ROOT)/pyodide_env.sh
SHELL := /bin/bash

export TOOLSDIR=$(PYODIDE_ROOT)/tools

version_tuple := $(subst ., ,$(PYVERSION:v%=%))
export PYMAJOR=$(word 1,$(version_tuple))
export PYMINOR=$(word 2,$(version_tuple))
export PYMICRO=$(word 3,$(version_tuple))

export HOSTPYTHONROOT=$(shell python${PYMAJOR}.${PYMINOR} -c "import sys; print(sys.prefix)")
export HOSTPYTHON=$(HOSTPYTHONROOT)/bin/python$(PYMAJOR).$(PYMINOR)
export TARGETPYTHONROOT=$(PYODIDE_ROOT)/cpython/installs/python-$(PYVERSION)
export PYTHONINCLUDE=$(PYODIDE_ROOT)/cpython/installs/python-$(PYVERSION)/include/python$(PYMAJOR).$(PYMINOR)

# Use env variable if defined, otherwise fallback to './'
export PYODIDE_BASE_URL?=./

# This environment variable is used for packages to detect if they are built
# for pyodide during build time
export PYODIDE=1
# This is the legacy environment variable used for the aforementioned purpose
export PYODIDE_PACKAGE_ABI=1
export EM_COMPILER_WRAPPER=ccache

export OPTFLAGS=-O2
export CFLAGS_BASE=\
	$(OPTFLAGS) \
	-g \
	-fPIC \
	$(EXTRA_CFLAGS)

export LDFLAGS_BASE=\
	-s BINARYEN_EXTRA_PASSES="--pass-arg=max-func-params@61" \
	$(OPTFLAGS) \
	-s MODULARIZE=1 \
	-s EMULATE_FUNCTION_POINTER_CASTS=1 \
	-s LINKABLE=1 \
	-s EXPORT_ALL=1 \
	-s WASM=1 \
	-std=c++14 \
	-s LZ4=1 \
	-L $(CPYTHONROOT)/installs/python-$(PYVERSION)/lib/ \
	$(EXTRA_LDFLAGS)

export CXXFLAGS_BASE=

export SIDE_MODULE_LDFLAGS=	$(LDFLAGS_BASE) -s SIDE_MODULE=1
export MAIN_MODULE_LDFLAGS= $(LDFLAGS_BASE) -s MAIN_MODULE=1 \
	-s EXPORTED_FUNCTIONS='["___cxa_guard_acquire", "__ZNSt3__28ios_base4initEPv", "_main"]' \
	-lpython$(PYMAJOR).$(PYMINOR) \
	-lffi \
	-lsqlite3 \
	-lbz2 \
	-lstdc++ \
	-s TOTAL_MEMORY=20971520 \
	-s ALLOW_MEMORY_GROWTH=1 \
    --use-preload-plugins \
	-s USE_FREETYPE=1 \
	-s USE_LIBPNG=1 \
	--memory-init-file 0 \

export SIDE_MODULE_CXXFLAGS = $(CXXFLAGS_BASE)

export SIDE_MODULE_CFLAGS= $(CFLAGS_BASE)
export MAIN_MODULE_CFLAGS= $(CFLAGS_BASE) \
    	-Wall \
    	-Wno-warn-absolute-paths \
    	-Werror=unused-variable \
    	-Werror=sometimes-uninitialized \
    	-Werror=int-conversion \
    	-Werror=incompatible-pointer-types \
		-I$(PYTHONINCLUDE)


.output_vars:
	set
