mirror of
https://github.com/openwrt/packages.git
synced 2026-01-12 04:34:50 +00:00
HostPython3 only adds a few environment variables before running host Python. It has only two users, Build/Compile/HostPy3RunHost and Build/Compile/HostPy3RunTarget. HostPython3 also accesses $(PYTHON3PATH), even though python3-host.mk does not include python3-package.mk, where the variable is defined. This removes HostPython3 and has its two users run host Python directly. This also combines the environment variables of HostPython3 and the two users into HOST_PYTHON3_VARS and PYTHON3_VARS. Signed-off-by: Jeffery To <jeffery.to@gmail.com>
72 lines
2.1 KiB
Makefile
72 lines
2.1 KiB
Makefile
#
|
|
# Copyright (C) 2017 OpenWrt.org
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
# Note: include this after `include $(TOPDIR)/rules.mk in your package Makefile
|
|
# if `python3-package.mk` is included, this will already be included
|
|
|
|
# For PYTHON3_VERSION
|
|
python3_mk_path:=$(dir $(lastword $(MAKEFILE_LIST)))
|
|
include $(python3_mk_path)python3-version.mk
|
|
|
|
HOST_PYTHON3_DIR:=$(STAGING_DIR_HOSTPKG)
|
|
HOST_PYTHON3_INC_DIR:=$(HOST_PYTHON3_DIR)/include/python$(PYTHON3_VERSION)
|
|
HOST_PYTHON3_LIB_DIR:=$(HOST_PYTHON3_DIR)/lib/python$(PYTHON3_VERSION)
|
|
|
|
HOST_PYTHON3_PKG_DIR:=$(HOST_PYTHON3_DIR)/lib/python$(PYTHON3_VERSION)/site-packages
|
|
|
|
HOST_PYTHON3_BIN:=$(HOST_PYTHON3_DIR)/bin/python$(PYTHON3_VERSION)
|
|
|
|
HOST_PYTHON3PATH:=$(HOST_PYTHON3_LIB_DIR):$(HOST_PYTHON3_PKG_DIR)
|
|
|
|
HOST_PYTHON3_VARS = \
|
|
ARCH="$(HOST_ARCH)" \
|
|
CC="$(HOSTCC)" \
|
|
CCSHARED="$(HOSTCC) $(HOST_FPIC)" \
|
|
CXX="$(HOSTCXX)" \
|
|
LD="$(HOSTCC)" \
|
|
LDSHARED="$(HOSTCC) -shared" \
|
|
CFLAGS="$(HOST_CFLAGS)" \
|
|
CPPFLAGS="$(HOST_CPPFLAGS) -I$(HOST_PYTHON3_INC_DIR)" \
|
|
LDFLAGS="$(HOST_LDFLAGS) -lpython$(PYTHON3_VERSION) -Wl$(comma)-rpath=$(STAGING_DIR_HOSTPKG)/lib" \
|
|
_PYTHON_HOST_PLATFORM=linux2 \
|
|
PYTHONPATH="$(HOST_PYTHON3PATH)" \
|
|
PYTHONDONTWRITEBYTECODE=0 \
|
|
PYTHONOPTIMIZE=""
|
|
|
|
# $(1) => directory of python script
|
|
# $(2) => python script and its arguments
|
|
# $(3) => additional variables
|
|
define Build/Compile/HostPy3RunHost
|
|
cd "$(if $(strip $(1)),$(strip $(1)),.)" && \
|
|
$(HOST_PYTHON3_VARS) \
|
|
$(3) \
|
|
$(HOST_PYTHON3_BIN) $(2)
|
|
endef
|
|
|
|
# Note: I shamelessly copied this from Yousong's logic (from python-packages);
|
|
HOST_PYTHON3_PIP:=$(STAGING_DIR_HOSTPKG)/bin/pip$(PYTHON3_VERSION)
|
|
|
|
# $(1) => packages to install
|
|
define Build/Compile/HostPy3PipInstall
|
|
$(HOST_PYTHON3_VARS) \
|
|
$(HOST_PYTHON3_PIP) \
|
|
--disable-pip-version-check \
|
|
--cache-dir "$(DL_DIR)/pip-cache" \
|
|
install \
|
|
$(1)
|
|
endef
|
|
|
|
# $(1) => build subdir
|
|
# $(2) => additional arguments to setup.py
|
|
# $(3) => additional variables
|
|
define Build/Compile/HostPy3Mod
|
|
$(call Build/Compile/HostPy3RunHost, \
|
|
$(HOST_BUILD_DIR)/$(strip $(1)), \
|
|
setup.py $(2), \
|
|
$(3))
|
|
endef
|