2 # Copyright (C) 2017 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 ifneq ($(__python3_host_mk_inc),1)
9 __python3_host_mk_inc=1
12 $(call include_mk, python3-version.mk)
14 HOST_PYTHON3_DIR:=$(STAGING_DIR_HOSTPKG)
15 HOST_PYTHON3_INC_DIR:=$(HOST_PYTHON3_DIR)/include/python$(PYTHON3_VERSION)
16 HOST_PYTHON3_LIB_DIR:=$(HOST_PYTHON3_DIR)/lib/python$(PYTHON3_VERSION)
18 HOST_PYTHON3_PKG_DIR:=$(HOST_PYTHON3_DIR)/lib/python$(PYTHON3_VERSION)/site-packages
20 HOST_PYTHON3_BIN:=$(HOST_PYTHON3_DIR)/bin/python$(PYTHON3_VERSION)
22 HOST_PYTHON3PATH:=$(HOST_PYTHON3_LIB_DIR):$(HOST_PYTHON3_PKG_DIR)
25 if [ "$(strip $(3))" == "HOST" ]; then \
26 export PYTHONPATH="$(HOST_PYTHON3PATH)"; \
27 export PYTHONDONTWRITEBYTECODE=0; \
29 export PYTHONPATH="$(PYTHON3PATH)"; \
30 export PYTHONDONTWRITEBYTECODE=1; \
31 export _python_sysroot="$(STAGING_DIR)"; \
32 export _python_prefix="/usr"; \
33 export _python_exec_prefix="/usr"; \
35 export PYTHONOPTIMIZE=""; \
37 $(HOST_PYTHON3_BIN) $(2);
40 # $(1) => commands to execute before running pythons script
41 # $(2) => python script and its arguments
42 # $(3) => additional variables
43 define Build/Compile/HostPy3RunHost
47 CCSHARED="$(HOSTCC) $(HOST_FPIC)" \
50 LDSHARED="$(HOSTCC) -shared" \
51 CFLAGS="$(HOST_CFLAGS)" \
52 CPPFLAGS="$(HOST_CPPFLAGS) -I$(HOST_PYTHON3_INC_DIR)" \
53 LDFLAGS="$(HOST_LDFLAGS) -lpython$(PYTHON3_VERSION) -Wl$(comma)-rpath=$(STAGING_DIR_HOSTPKG)/lib" \
54 _PYTHON_HOST_PLATFORM=linux2 \
64 # $(1) => build subdir
65 # $(2) => additional arguments to setup.py
66 # $(3) => additional variables
67 define Build/Compile/HostPy3Mod
68 $(call Build/Compile/HostPy3RunHost, \
69 cd $(HOST_BUILD_DIR)/$(strip $(1)), \
74 define HostPy3/Compile/Default
75 $(call Build/Compile/HostPy3Mod,,\
76 install --root="$(STAGING_DIR_HOSTPKG)" --prefix="" \
77 --single-version-externally-managed \
81 ifeq ($(BUILD_VARIANT),python3)
83 $(call HostPy3/Compile/Default)
90 endif # __python3_host_mk_inc