Skip to content

Commit

Permalink
Review content of crossenv to respect build vs cross. (SynoCommunity#…
Browse files Browse the repository at this point in the history
…6437)

* spksrc.requirement.mk: Unified method to process requirements files

* Bump pakage versions to enforce github-action build processing

* crossenv.mk: Basic unit testing functional - will fail to build

* spksrc.wheel-*.mk: Complete REQUIREMENT removal to use WHEEL_URL

* crossenv.mk: Revert to using $$(which ) to ensure full path

* spk.mk: Include from top spk.mk the python-requirement.mk

* py311-312: Convert crossenv requirement files to use build:cross

* requirement.mk: Move include from spk to wheel-env.mk

* crossenv: Allow non-build:cross def and use $* for dep install

* py312-313: Move all $(TC_GCC) dependent wheels below python.mk

* py311-313: Migrate crossenv definitions files to use build:cross

* py312-313: Temporary disable numpy

* python*.mk: Fix crossenv PATH definition

* python: Remove dependencies to native/python3* pip environment

* python313-wheels: greenlet < 3.1 no longer supported

* crossenv|wheel-compile.mk: Adjust PATH to handle ENV and duplicates

* update comment related to WHEELS initialization

* fix build of llfuse wheel

- add llfuse to python312-wheels and python313-wheels
- use -std=gnu11 for gcc < 5

* python312: update to v3.12.9

* python313: update to v3.13.2

* exclude llfuse for python313

- llfuse wheel fails to build with python313

* python: Enable crossenv|wheel logs and avoid renaming manylinux

* crossenv.mk: Remove the manylinux2014 option as unecessary

* wheel-install.mk: No longer manage manylinux

* wheel+crossenv: Fix log redirection for crossenv and wheel builds

* deluge+python312-wheels: Remove package bump

* python311-wheels: Remove package bump

* wheel-compile.mk: Fix issue of first pure-python wheel being skipped

* py312-313: Add atom with its crossenv definition

* crossenv.mk: Add --machine flag to fix poetry resulting filemame

* py313: Remove atom==0.10.5 as not compatible

* wheel-compile.mk: Manage false-positive relatively to crossenv

* crossenv.mk: Use TC_TARGET official arch definition triplet

This allows for example to declare using gnuspe for using SPE
(Signal Processing Engine) for instance for qoriq.

* common.mk: Rename crossenv and wheel build logs for proper sorting

---------

Co-authored-by: hgy59 <[email protected]>
  • Loading branch information
th0ma7 and hgy59 authored Feb 15, 2025
1 parent 7d58e29 commit 24f512a
Show file tree
Hide file tree
Showing 44 changed files with 638 additions and 457 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,10 @@ cross/*/status*
kernel/*/work*
spk/*/work*
spk/*/build*
spk/*/crossenv*
spk/*/publish*
spk/*/status*
spk/*/wheel*
diyspk/*/work*
diyspk/*/build*
diyspk/*/status*
Expand Down
2 changes: 1 addition & 1 deletion cross/python312/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
PKG_NAME = python312
PKG_VERS = 3.12.8
PKG_VERS = 3.12.9
PKG_VERS_MAJOR_MINOR = $(word 1,$(subst ., ,$(PKG_VERS))).$(word 2,$(subst ., ,$(PKG_VERS)))
PKG_EXT = tar.xz
PKG_DIST_NAME = Python-$(PKG_VERS).$(PKG_EXT)
Expand Down
6 changes: 3 additions & 3 deletions cross/python312/digests
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
Python-3.12.8.tar.xz SHA1 8872c7a124c6970833e0bde4f25d6d7d61c6af6e
Python-3.12.8.tar.xz SHA256 c909157bb25ec114e5869124cc2a9c4a4d4c1e957ca4ff553f1edc692101154e
Python-3.12.8.tar.xz MD5 d46e5bf9f2e596a3ba45fc0b3c053dd2
Python-3.12.9.tar.xz SHA1 465d8a664e63dc5aa1f0d90cd1d0000a970ee2fb
Python-3.12.9.tar.xz SHA256 7220835d9f90b37c006e9842a8dff4580aaca4318674f947302b8d28f3f81112
Python-3.12.9.tar.xz MD5 880942124f7d5c01e7b65cbad62dc873
2 changes: 1 addition & 1 deletion cross/python313/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
PKG_NAME = python313
PKG_VERS = 3.13.1
PKG_VERS = 3.13.2
PKG_VERS_MAJOR_MINOR = $(word 1,$(subst ., ,$(PKG_VERS))).$(word 2,$(subst ., ,$(PKG_VERS)))
PKG_EXT = tar.xz
PKG_DIST_NAME = Python-$(PKG_VERS).$(PKG_EXT)
Expand Down
6 changes: 3 additions & 3 deletions cross/python313/digests
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
Python-3.13.1.tar.xz SHA1 4b0c2a49a848c3c5d611416099636262a0b9090f
Python-3.13.1.tar.xz SHA256 9cf9427bee9e2242e3877dd0f6b641c1853ca461f39d6503ce260a59c80bf0d9
Python-3.13.1.tar.xz MD5 80c16badb94ffe235280d4d9a099b8bc
Python-3.13.2.tar.xz SHA1 e4949d999f28d6ad941e766b7dac09a74efbc912
Python-3.13.2.tar.xz SHA256 d984bcc57cd67caab26f7def42e523b1c015bbc5dc07836cf4f0b63fa159eb56
Python-3.13.2.tar.xz MD5 4c2d9202ab4db02c9d0999b14655dfe5
6 changes: 6 additions & 0 deletions mk/spksrc.common.mk
Original file line number Diff line number Diff line change
Expand Up @@ -123,11 +123,17 @@ endif
# Always send PSTAT output to proper log file
# independantly from active Makefile location
ifeq ($(filter cross diyspk spk,$(shell basename $(dir $(abspath $(dir $$PWD))))),)
CROSSENV_LOG = $(shell pwdx $$(ps -o ppid= $$(echo $$PPID)) | cut -f2 -d:)/build-$(ARCH)-$(TCVERSION)-crossenv.log
PSTAT_LOG = $(shell pwdx $$(ps -o ppid= $$(echo $$PPID)) | cut -f2 -d:)/status-build.log
WHEEL_LOG = $(shell pwdx $$(ps -o ppid= $$(echo $$PPID)) | cut -f2 -d:)/build-$(ARCH)-$(TCVERSION)-wheel.log
else ifneq ($(wildcard $(WORK_DIR)),)
CROSSENV_LOG = $(WORK_DIR)/../build-$(ARCH)-$(TCVERSION)-crossenv.log
PSTAT_LOG = $(WORK_DIR)/../status-build.log
WHEEL_LOG = $(WORK_DIR)/../build-$(ARCH)-$(TCVERSION)-wheel.log
else
CROSSENV_LOG = $(CURDIR)/build-$(ARCH)-$(TCVERSION)-crossenv.log
PSTAT_LOG = $(CURDIR)/status-build.log
WHEEL_LOG = $(CURDIR)/build-$(ARCH)-$(TCVERSION)-wheel.log
endif

# Terminal colors
Expand Down
166 changes: 97 additions & 69 deletions mk/spksrc.crossenv.mk
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@
# WHEEL_NAME Name of wheel to process
# WHEEL_VERSION Version of wheel to process (can be empty)

# include cmake definitions
include ../../mk/spksrc.cross-cmake-env.mk

# include meson definitions
include ../../mk/spksrc.cross-meson-env.mk

# Defined using PYTHON_PACKAGE_WORK_DIR from spksrc.python.mk or use local work directory
PYTHON_WORK_DIR = $(or $(wildcard $(PYTHON_PACKAGE_WORK_DIR)),$(wildcard $(WORK_DIR)))

Expand All @@ -34,7 +40,7 @@ PYTHON_LIB_CROSS = $(abspath $(PYTHON_WORK_DIR)/$(PYTHON_PKG_DIR)/bui
# wheel crossenv definitions
CROSSENV_CONFIG_PATH = $(abspath $(PYTHON_WORK_DIR)/../crossenv)
CROSSENV_CONFIG_DEFAULT = $(CROSSENV_CONFIG_PATH)/requirements-default.txt
CROSSENV_PATH = $(abspath $(WORK_DIR)/crossenv-$(CROSSENV_BUILD_WHEEL)/)
CROSSENV_PATH = $(abspath $(WORK_DIR)/crossenv-$(CROSSENV_WHEEL)/)

###

Expand All @@ -58,50 +64,47 @@ endif

# Check for <wheel>-<x.y>, then fallback to <wheel>, then default
ifneq ($(wildcard $(CROSSENV_CONFIG_PATH)/requirements-$(WHEEL_NAME)-$(WHEEL_VERSION).txt),)
CROSSENV_BUILD_WHEEL = $(WHEEL_NAME)-$(WHEEL_VERSION)
CROSSENV_BUILD_REQUIREMENTS = $(CROSSENV_CONFIG_PATH)/requirements-$(CROSSENV_BUILD_WHEEL).txt
CROSSENV_WHEEL = $(WHEEL_NAME)-$(WHEEL_VERSION)
CROSSENV_REQUIREMENTS = $(CROSSENV_CONFIG_PATH)/requirements-$(CROSSENV_WHEEL).txt
else ifneq ($(wildcard $(CROSSENV_CONFIG_PATH)/requirements-$(WHEEL_NAME).txt),)
CROSSENV_BUILD_WHEEL = $(WHEEL_NAME)
CROSSENV_BUILD_REQUIREMENTS = $(CROSSENV_CONFIG_PATH)/requirements-$(WHEEL_NAME).txt
CROSSENV_WHEEL = $(WHEEL_NAME)
CROSSENV_REQUIREMENTS = $(CROSSENV_CONFIG_PATH)/requirements-$(WHEEL_NAME).txt
else
CROSSENV_BUILD_WHEEL = default
CROSSENV_BUILD_REQUIREMENTS = $(CROSSENV_CONFIG_DEFAULT)
CROSSENV_WHEEL = default
CROSSENV_REQUIREMENTS = $(CROSSENV_CONFIG_DEFAULT)
endif

# Completion status file
CROSSENV_COOKIE = $(WORK_DIR)/.crossenv-$(CROSSENV_BUILD_WHEEL)_done
CROSSENV_COOKIE = $(WORK_DIR)/.crossenv-$(CROSSENV_WHEEL)_done

###

# default wheel packages to install in crossenv
ifneq ($(wildcard $(CROSSENV_BUILD_REQUIREMENTS) $(CROSSENV_CONFIG_DEFAULT)),)
CROSSENV_DEFAULT_PIP_VERSION = $(shell grep -h -E "^pip[<>=]=" $(wildcard $(CROSSENV_BUILD_REQUIREMENTS) $(CROSSENV_CONFIG_DEFAULT)) | head -1 | sed -E 's/.*[<>=]=//')
CROSSENV_DEFAULT_SETUPTOOLS_VERSION = $(shell grep -h -E "^setuptools[<>=]=" $(wildcard $(CROSSENV_BUILD_REQUIREMENTS) $(CROSSENV_CONFIG_DEFAULT)) | head -1 | sed -E 's/.*[<>=]=//')
CROSSENV_DEFAULT_WHEEL_VERSION = $(shell grep -h -E "^wheel[<>=]=" $(wildcard $(CROSSENV_BUILD_REQUIREMENTS) $(CROSSENV_CONFIG_DEFAULT)) | head -1 | sed -E 's/.*[<>=]=//')
endif

ifneq ($(CROSSENV_DEFAULT_PIP_VERSION),)
CROSSENV_DEFAULT_PIP = pip==$(CROSSENV_DEFAULT_PIP_VERSION)
else
CROSSENV_DEFAULT_PIP = pip
endif

ifneq ($(CROSSENV_DEFAULT_SETUPTOOLS_VERSION),)
CROSSENV_DEFAULT_SETUPTOOLS = setuptools==$(CROSSENV_DEFAULT_SETUPTOOLS_VERSION)
else
CROSSENV_DEFAULT_SETUPTOOLS = setuptools
# default pip, setuptools and wheel packages to
# install in crossenv/build and crossenv/cross
ifneq ($(wildcard $(CROSSENV_REQUIREMENTS) $(CROSSENV_CONFIG_DEFAULT)),)
CROSSENV_BUILD_PIP_VERSION = $(shell grep -h -E "(^build:|^)pip[<>=]=" $(wildcard $(CROSSENV_REQUIREMENTS) $(CROSSENV_CONFIG_DEFAULT)) | head -1 | sed -E 's/.*[<>=]=//')
CROSSENV_CROSS_PIP_VERSION = $(or $(shell grep -h -E "(^cross:)pip[<>=]=" $(wildcard $(CROSSENV_REQUIREMENTS) $(CROSSENV_CONFIG_DEFAULT)) | head -1 | sed -E 's/.*[<>=]=//'), $(CROSSENV_BUILD_PIP_VERSION))
CROSSENV_BUILD_SETUPTOOLS_VERSION = $(shell grep -h -E "(^build:|^)setuptools[<>=]=" $(wildcard $(CROSSENV_REQUIREMENTS) $(CROSSENV_CONFIG_DEFAULT)) | head -1 | sed -E 's/.*[<>=]=//')
CROSSENV_CROSS_SETUPTOOLS_VERSION = $(or $(shell grep -h -E "(^cross:)setuptools[<>=]=" $(wildcard $(CROSSENV_REQUIREMENTS) $(CROSSENV_CONFIG_DEFAULT)) | head -1 | sed -E 's/.*[<>=]=//'), $(CROSSENV_BUILD_SETUPTOOLS_VERSION))
CROSSENV_BUILD_WHEEL_VERSION = $(shell grep -h -E "(^build:|^)wheel[<>=]=" $(wildcard $(CROSSENV_REQUIREMENTS) $(CROSSENV_CONFIG_DEFAULT)) | head -1 | sed -E 's/.*[<>=]=//')
CROSSENV_CROSS_WHEEL_VERSION = $(or $(shell grep -h -E "(^cross:)wheel[<>=]=" $(wildcard $(CROSSENV_REQUIREMENTS) $(CROSSENV_CONFIG_DEFAULT)) | head -1 | sed -E 's/.*[<>=]=//'), $(CROSSENV_BUILD_WHEEL_VERSION))
endif

ifneq ($(CROSSENV_DEFAULT_WHEEL_VERSION),)
CROSSENV_DEFAULT_WHEEL = wheel==$(CROSSENV_DEFAULT_WHEEL_VERSION)
else
CROSSENV_DEFAULT_WHEEL = wheel
endif
CROSSENV_BUILD_PIP ?= pip$(if $(CROSSENV_BUILD_PIP_VERSION),==$(CROSSENV_BUILD_PIP_VERSION))
CROSSENV_CROSS_PIP ?= pip$(if $(CROSSENV_CROSS_PIP_VERSION),==$(CROSSENV_CROSS_PIP_VERSION))
CROSSENV_BUILD_SETUPTOOLS ?= setuptools$(if $(CROSSENV_BUILD_SETUPTOOLS_VERSION),==$(CROSSENV_BUILD_SETUPTOOLS_VERSION))
CROSSENV_CROSS_SETUPTOOLS ?= setuptools$(if $(CROSSENV_CROSS_SETUPTOOLS_VERSION),==$(CROSSENV_CROSS_SETUPTOOLS_VERSION))
CROSSENV_BUILD_WHEEL ?= wheel$(if $(CROSSENV_BUILD_WHEEL_VERSION),==$(CROSSENV_BUILD_WHEEL_VERSION))
CROSSENV_CROSS_WHEEL ?= wheel$(if $(CROSSENV_CROSS_WHEEL_VERSION),==$(CROSSENV_CROSS_WHEEL_VERSION))

###

crossenv_msg_target:
@$(MSG) "Preparing crossenv for $(NAME)"
ifneq ($(WHEEL_NAME),)
@$(MSG) "Preparing crossenv for $(NAME) - [$(WHEEL_NAME)==$(WHEEL_VERSION)]"
else
@$(MSG) "Preparing crossenv for $(NAME) - [default]"
endif

# Create per-arch caching directory:
# PIP_CACHE_DIR defaults to $(WORK_DIR)/pip
Expand All @@ -110,13 +113,13 @@ pre_crossenv_target: crossenv_msg_target
mkdir -p $(PIP_CACHE_DIR) ; \
fi; \

post_crossenv_target: $(CROSSENV_TARGET)

###

crossenv-%: SHELL:=/bin/bash
crossenv-%:
@$(MSG) $(MAKE) ARCH=\"$(firstword $(subst -, ,$*))\" TCVERSION=\"$(lastword $(subst -, ,$*))\" WHEEL_NAME=\"$(WHEEL_NAME)\" WHEEL_VERSION=\"$(WHEEL_VERSION)\" crossenv
@MAKEFLAGS= $(MAKE) ARCH="$(firstword $(subst -, ,$*))" TCVERSION="$(lastword $(subst -, ,$*))" WHEEL_NAME="$(WHEEL_NAME)" WHEEL_VERSION="$(WHEEL_VERSION)" crossenv --no-print-directory
@$(MSG) $(MAKE) ARCH=\"$(firstword $(subst -, ,$*))\" TCVERSION=\"$(lastword $(subst -, ,$*))\" WHEEL_NAME=\"$(WHEEL_NAME)\" WHEEL_VERSION=\"$(WHEEL_VERSION)\" WHEEL_DEPENDENCY=\"$(WHEEL_DEPENDENCY)\" crossenv | tee --append $(CROSSENV_LOG)
@MAKEFLAGS= $(MAKE) ARCH="$(firstword $(subst -, ,$*))" TCVERSION="$(lastword $(subst -, ,$*))" WHEEL_NAME="$(WHEEL_NAME)" WHEEL_VERSION="$(WHEEL_VERSION)" WHEEL_DEPENDENCY=\"$(WHEEL_DEPENDENCY)\" crossenv --no-print-directory | tee --append $(CROSSENV_LOG) ; \
[ $${PIPESTATUS[0]} -eq 0 ] || false

####

Expand Down Expand Up @@ -162,11 +165,10 @@ export PYTHONPATH = $(PYTHON_LIB_NATIVE):$(PYTHON_STAGING_INSTALL_PREFIX)/lib/py
# >>> sys.path
#
build_crossenv_target: SHELL:=/bin/bash
build_crossenv_target: pre_crossenv_target $(CROSSENV_PATH)/build/python-cc.mk
@$(MSG) $$(date +%Y%m%d-%H%M%S) MAKELEVEL: $(MAKELEVEL), PARALLEL_MAKE: $(PARALLEL_MAKE), ARCH: $(ARCH)-$(TCVERSION), CROSSENV: $(CROSSENV_BUILD_WHEEL) >> $(PSTAT_LOG)
build_crossenv_target: pre_crossenv_target
@$(MSG) $$(date +%Y%m%d-%H%M%S) MAKELEVEL: $(MAKELEVEL), PARALLEL_MAKE: $(PARALLEL_MAKE), ARCH: $(ARCH)-$(TCVERSION), CROSSENV: $(CROSSENV_WHEEL) >> $(PSTAT_LOG)
@$(MSG) Python sources: $(wildcard $(PYTHON_WORK_DIR)/Python-[0-9]*)
@$(MSG) crossenv wheel packages: $(CROSSENV_DEFAULT_PIP), $(CROSSENV_DEFAULT_SETUPTOOLS), $(CROSSENV_DEFAULT_WHEEL)
@$(MSG) crossenv requirement definition: $(CROSSENV_BUILD_REQUIREMENTS)
@$(MSG) crossenv requirement definition: $(CROSSENV_REQUIREMENTS)
mkdir -p $(PYTHON_LIB_CROSS)
cp -RL $(HOSTPYTHON_LIB_NATIVE) $(abspath $(PYTHON_LIB_CROSS)/../)
@echo $(PYTHON_NATIVE) -m crossenv $(abspath $(PYTHON_WORK_DIR)/install/$(PYTHON_INSTALL_PREFIX)/bin/python$(PYTHON_PKG_VERS_MAJOR_MINOR)) \
Expand All @@ -175,48 +177,63 @@ build_crossenv_target: pre_crossenv_target $(CROSSENV_PATH)/build/python-cc.mk
--ar $(TC_PATH)$(TC_PREFIX)ar \
--sysroot $(TC_SYSROOT) \
--env LIBRARY_PATH= \
--manylinux manylinux2014 \
--machine $(TC_TARGET) \
"$(CROSSENV_PATH)"
@$(RUN) $(PYTHON_NATIVE) -m crossenv $(abspath $(PYTHON_WORK_DIR)/install/$(PYTHON_INSTALL_PREFIX)/bin/python$(PYTHON_PKG_VERS_MAJOR_MINOR)) \
--cc $(TC_PATH)$(TC_PREFIX)gcc \
--cxx $(TC_PATH)$(TC_PREFIX)c++ \
--ar $(TC_PATH)$(TC_PREFIX)ar \
--sysroot $(TC_SYSROOT) \
--env LIBRARY_PATH= \
--manylinux manylinux2014 \
--machine $(TC_TARGET) \
"$(CROSSENV_PATH)"
ifeq ($(CROSSENV_BUILD_WHEEL),default)
ifeq ($(CROSSENV_WHEEL),default)
@$(MSG) Setting default crossenv $(CROSSENV_PATH)
@$(MSG) ln -sf crossenv-default $(WORK_DIR)/crossenv
@$(RUN) ln -sf crossenv-default $(WORK_DIR)/crossenv
endif
@$(RUN) wget --no-verbose https://bootstrap.pypa.io/get-pip.py --directory-prefix=$(CROSSENV_PATH)/build ; \
$(RUN) chmod 755 $(CROSSENV_PATH)/build/get-pip.py
@$(MSG) crossenv-$(CROSSENV_WHEEL)/build default packages: $(CROSSENV_BUILD_PIP), $(CROSSENV_BUILD_SETUPTOOLS), $(CROSSENV_BUILD_WHEEL)
@. $(CROSSENV_PATH)/bin/activate ; \
$(MSG) build-python install $(CROSSENV_DEFAULT_PIP) ; \
$(RUN) $$(which build-python) $(CROSSENV_PATH)/build/get-pip.py $(CROSSENV_DEFAULT_PIP) --no-setuptools --no-wheel --disable-pip-version-check ; \
$(MSG) cross-python Install $(CROSSENV_DEFAULT_PIP) ; \
$(RUN) $$(which cross-python) $(CROSSENV_PATH)/build/get-pip.py $(CROSSENV_DEFAULT_PIP) --no-setuptools --no-wheel --disable-pip-version-check
@. $(CROSSENV_PATH)/bin/activate ; \
$(MSG) build-pip Install $(CROSSENV_DEFAULT_SETUPTOOLS) $(CROSSENV_DEFAULT_WHEEL) ; \
$(RUN) $$(which build-pip) --cache-dir $(PIP_CACHE_DIR) --disable-pip-version-check install $(CROSSENV_DEFAULT_SETUPTOOLS) $(CROSSENV_DEFAULT_WHEEL) ; \
$(MSG) cross-pip Install $(CROSSENV_DEFAULT_SETUPTOOLS) $(CROSSENV_DEFAULT_WHEEL) ; \
$(RUN) $$(which cross-pip) --cache-dir $(PIP_CACHE_DIR) --disable-pip-version-check install $(CROSSENV_DEFAULT_SETUPTOOLS) $(CROSSENV_DEFAULT_WHEEL)
@$(MSG) [$(CROSSENV_PATH)] Processing $(CROSSENV_BUILD_REQUIREMENTS)
@. $(CROSSENV_PATH)/bin/activate ; \
$(MSG) build-pip install -r $(CROSSENV_BUILD_REQUIREMENTS) ; \
$(RUN) \
PATH="$(abspath $(WORK_DIR)/../../../native/$(PYTHON_PKG_NAME)/work-native/install/usr/local/bin):$(PATH)" \
LD_LIBRARY_PATH="$(abspath $(WORK_DIR)/../../../native/$(PYTHON_PKG_NAME)/work-native/install/usr/local/lib):$(LD_LIBRARY_PATH)" \
$$(which build-pip) --cache-dir $(PIP_CACHE_DIR) --disable-pip-version-check install -r $(CROSSENV_BUILD_REQUIREMENTS) ; \
$(MSG) cross-pip Install -r $(CROSSENV_BUILD_REQUIREMENTS) ; \
$(RUN) \
PATH="$(abspath $(WORK_DIR)/../../../native/$(PYTHON_PKG_NAME)/work-native/install/usr/local/bin):$(PATH)" \
LD_LIBRARY_PATH="$(abspath $(WORK_DIR)/../../../native/$(PYTHON_PKG_NAME)/work-native/install/usr/local/lib):$(LD_LIBRARY_PATH)" \
$$(which cross-pip) --cache-dir $(PIP_CACHE_DIR) --disable-pip-version-check install -r $(CROSSENV_BUILD_REQUIREMENTS)
$(MSG) $$(which build-python) install $(CROSSENV_BUILD_PIP) ; \
$(RUN) $(CROSSENV_PATH)/bin/build-python $(CROSSENV_PATH)/build/get-pip.py $(CROSSENV_BUILD_PIP) --no-setuptools --no-wheel --disable-pip-version-check ; \
$(MSG) build-pip Install $(CROSSENV_BUILD_SETUPTOOLS) $(CROSSENV_BUILD_WHEEL) ; \
$(RUN) $$(which build-pip) --cache-dir $(PIP_CACHE_DIR) --disable-pip-version-check install $(CROSSENV_BUILD_SETUPTOOLS) $(CROSSENV_BUILD_WHEEL)
@$(MSG) crossenv-$(CROSSENV_WHEEL)/cross default packages: $(CROSSENV_CROSS_PIP), $(CROSSENV_CROSS_SETUPTOOLS), $(CROSSENV_CROSS_WHEEL)
@. $(CROSSENV_PATH)/bin/activate ; \
$(MSG) "Package list for $(CROSSENV_PATH):" ; \
$(RUN) $$(which cross-pip) list
$(MSG) cross-python Install $(CROSSENV_CROSS_PIP) ; \
$(RUN) $$(which cross-python) $(CROSSENV_PATH)/build/get-pip.py $(CROSSENV_CROSS_PIP) --no-setuptools --no-wheel --disable-pip-version-check ; \
$(MSG) cross-pip Install $(CROSSENV_CROSS_SETUPTOOLS) $(CROSSENV_CROSS_WHEEL) ; \
$(RUN) $$(which cross-pip) --cache-dir $(PIP_CACHE_DIR) --disable-pip-version-check install $(CROSSENV_CROSS_SETUPTOOLS) $(CROSSENV_CROSS_WHEEL)
@$(MSG) $(MAKE) ARCH=$(ARCH) TCVERSION=$(TCVERSION) REQUIREMENT=\"$(CROSSENV_REQUIREMENTS)\" REQUIREMENT_GOAL=\"crossenv-install-$(CROSSENV_WHEEL)\" requirement ; \
MAKEFLAGS= $(MAKE) ARCH=$(ARCH) TCVERSION=$(TCVERSION) REQUIREMENT="$(CROSSENV_REQUIREMENTS)" REQUIREMENT_GOAL="crossenv-install-$(CROSSENV_WHEEL)" requirement


###
### crossenv-install-<crossenv>
### <crossenv> = $(lastword $(subst -, ,$*)) being <wheel>-<version>, <wheel> or default
###
crossenv-install-%:
@. $(abspath $(WORK_DIR)/crossenv-$(lastword $(subst -, ,$*)))/bin/activate ; \
if [ -e "$(abspath $(WORK_DIR)/crossenv-$(lastword $(subst -, ,$*)))/bin/activate" ] ; then \
export PATH=$${PATH}:$(abspath $(WORK_DIR)/crossenv-$(lastword $(subst -, ,$*)))/build/bin ; \
$(MSG) "crossenv: [$(abspath $(WORK_DIR)/crossenv-$(lastword $(subst -, ,$*)))/bin/activate]" ; \
$(MSG) "python: [$$(which $(WHEEL_TYPE)-python)]" ; \
else \
echo "ERROR: crossenv not found!" ; \
exit 2 ; \
fi ; \
$(MSG) \
$$(which $(WHEEL_TYPE)-python) -m pip \
install $(WHEEL_NAME)==$(WHEEL_VERSION) ; \
$(RUN) \
PATH=$${PATH} \
$$(which $(WHEEL_TYPE)-python) -m pip \
--cache-dir $(PIP_CACHE_DIR) \
--disable-pip-version-check \
install $(WHEEL_NAME)==$(WHEEL_VERSION)


##
## python-cc.mk
Expand Down Expand Up @@ -248,10 +265,21 @@ $(CROSSENV_PATH)/build/python-cc.mk:
@echo PIP=$(abspath $(WORK_DIR)/../../../native/$(PYTHON_PKG_NAME)/work-native/install/usr/local/bin/pip) >> $@
@echo CROSS_COMPILE_WHEELS=1 >> $@
@echo ADDITIONAL_WHEEL_BUILD_ARGS=--no-build-isolation >> $@
@echo CROSSENV_BUILD_REQUIREMENTS=$(CROSSENV_BUILD_REQUIREMENTS) >> $@
@echo CROSSENV_DEFAULT_PIP=$(CROSSENV_DEFAULT_PIP_VERSION) >> $@
@echo CROSSENV_DEFAULT_SETUPTOOLS=$(CROSSENV_DEFAULT_SETUPTOOLS_VERSION) >> $@
@echo CROSSENV_DEFAULT_WHEEL=$(CROSSENV_DEFAULT_WHEEL_VERSION) >> $@
@echo CROSSENV_REQUIREMENTS=$(CROSSENV_REQUIREMENTS) >> $@
@echo CROSSENV_BUILD_PIP=$(CROSSENV_BUILD_PIP_VERSION) >> $@
@echo CROSSENV_BUILD_SETUPTOOLS=$(CROSSENV_BUILD_SETUPTOOLS_VERSION) >> $@
@echo CROSSENV_BUILD_WHEEL=$(CROSSENV_WHEEL_VERSION) >> $@
@echo CROSSENV_CROSS_PIP=$(CROSSENV_CROSS_PIP_VERSION) >> $@
@echo CROSSENV_CROSS_SETUPTOOLS=$(CROSSENV_CROSS_SETUPTOOLS_VERSION) >> $@
@echo CROSSENV_CROSS_WHEEL=$(CROSSENV_CROSS_WHEEL_VERSION) >> $@

post_crossenv_target: $(CROSSENV_TARGET) $(CROSSENV_PATH)/build/python-cc.mk
@$(MSG) "Package list for $(CROSSENV_PATH)/build:"
@. $(CROSSENV_PATH)/bin/activate ; \
$(RUN) $$(which build-pip) list
@$(MSG) "Package list for $(CROSSENV_PATH)/cross:"
@. $(CROSSENV_PATH)/bin/activate ; \
$(RUN) $$(which cross-pip) list

ifeq ($(wildcard $(CROSSENV_COOKIE)),)
crossenv: $(CROSSENV_COOKIE)
Expand Down
Loading

0 comments on commit 24f512a

Please sign in to comment.