mirror of https://github.com/pyodide/pyodide.git
78 lines
2.3 KiB
Makefile
78 lines
2.3 KiB
Makefile
export PYODIDE_EMSCRIPTEN_VERSION ?= 2.0.15
|
|
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.8.2
|
|
export PYMINOR=$(basename $(PYVERSION))
|
|
export HOSTPYTHONROOT=$(shell python3.8 -c "import sys; print(sys.prefix)")
|
|
export HOSTPYTHON=$(HOSTPYTHONROOT)/bin/python3.8
|
|
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 \
|
|
$(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"]' \
|
|
$(CPYTHONROOT)/installs/python-$(PYVERSION)/lib/libpython$(PYMINOR).a \
|
|
-s TOTAL_MEMORY=20971520 \
|
|
-s ALLOW_MEMORY_GROWTH=1 \
|
|
--use-preload-plugins \
|
|
-s USE_FREETYPE=1 \
|
|
-s USE_LIBPNG=1 \
|
|
-L$(wildcard $(CPYTHONROOT)/build/sqlite*/.libs) -lsqlite3 \
|
|
$(wildcard $(CPYTHONROOT)/build/bzip2*/libbz2.a) \
|
|
-lstdc++ \
|
|
--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
|