Merge pull request #4830 from commodo/python-updates1

python,python3: build updates
This commit is contained in:
Hannu Nyman 2017-09-14 17:23:48 +03:00 committed by GitHub
commit 9330c6c39c
4 changed files with 57 additions and 43 deletions

View file

@ -12,7 +12,7 @@ include ./files/python-version.mk
PKG_NAME:=python PKG_NAME:=python
PKG_VERSION:=$(PYTHON_VERSION).$(PYTHON_VERSION_MICRO) PKG_VERSION:=$(PYTHON_VERSION).$(PYTHON_VERSION_MICRO)
PKG_RELEASE:=6 PKG_RELEASE:=7
PKG_SOURCE:=Python-$(PKG_VERSION).tar.xz PKG_SOURCE:=Python-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://www.python.org/ftp/python/$(PKG_VERSION) PKG_SOURCE_URL:=https://www.python.org/ftp/python/$(PKG_VERSION)
@ -188,6 +188,16 @@ define Build/Compile
$(call Build/Compile/python-pip) $(call Build/Compile/python-pip)
endef endef
define Build/InstallMkFiles
$(INSTALL_DIR) $(STAGING_DIR)/mk/
$(INSTALL_DATA) \
./files/python-package.mk \
./files/python-host.mk \
./files/python-version.mk \
./files/python-package-install.sh \
$(STAGING_DIR)/mk/
endef
define Build/InstallDev define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/ $(1)/usr/lib/ $(1)/usr/lib/pkgconfig $(INSTALL_DIR) $(1)/usr/include/ $(1)/usr/lib/ $(1)/usr/lib/pkgconfig
$(INSTALL_DIR) $(1)/usr/lib/python$(PYTHON_VERSION)/ $(INSTALL_DIR) $(1)/usr/lib/python$(PYTHON_VERSION)/
@ -206,6 +216,7 @@ define Build/InstallDev
$(CP) \ $(CP) \
$(PKG_INSTALL_DIR)/usr/lib/python$(PYTHON_VERSION)/config \ $(PKG_INSTALL_DIR)/usr/lib/python$(PYTHON_VERSION)/config \
$(1)/usr/lib/python$(PYTHON_VERSION)/ $(1)/usr/lib/python$(PYTHON_VERSION)/
$(call Build/InstallMkFiles)
endef endef
PYTHON_BASE_LIB_FILES:= \ PYTHON_BASE_LIB_FILES:= \
@ -286,19 +297,10 @@ HOST_CONFIGURE_ARGS+= \
CONFIG_SITE= CONFIG_SITE=
define Host/Install define Host/Install
$(call Build/InstallMkFiles)
$(MAKE) -C $(HOST_BUILD_DIR) install $(MAKE) -C $(HOST_BUILD_DIR) install
$(INSTALL_DIR) $(HOST_PYTHON_DIR)/bin/ $(STAGING_DIR)/mk/ $(INSTALL_DIR) $(HOST_PYTHON_DIR)/bin/
$(INSTALL_BIN) $(HOST_BUILD_DIR)/Parser/pgen $(HOST_PYTHON_DIR)/bin/pgen2 $(INSTALL_BIN) $(HOST_BUILD_DIR)/Parser/pgen $(HOST_PYTHON_DIR)/bin/pgen2
# Install these mk files in the Host/Install phase ;
# The Build/InstallDev rule is activated only for target builds.
# But if someone needs only the host Python, then
# these files need to be installed in this phase, and not Build/InstallDev
$(INSTALL_DATA) \
./files/python-package.mk \
./files/python-host.mk \
./files/python-version.mk \
./files/python-package-install.sh \
$(STAGING_DIR)/mk/
endef endef
$(eval $(call HostBuild)) $(eval $(call HostBuild))

View file

@ -37,12 +37,8 @@ define HostPython
$(HOST_PYTHON_BIN) $(2); $(HOST_PYTHON_BIN) $(2);
endef endef
# $(1) => commands to execute before running pythons script define host_python_settings
# $(2) => python script and its arguments ARCH="$(HOST_ARCH)" \
# $(3) => additional variables
define Build/Compile/HostPyRunHost
$(call HostPython, \
$(if $(1),$(1);) \
CC="$(HOSTCC)" \ CC="$(HOSTCC)" \
CCSHARED="$(HOSTCC) $(HOST_FPIC)" \ CCSHARED="$(HOSTCC) $(HOST_FPIC)" \
CXX="$(HOSTCXX)" \ CXX="$(HOSTCXX)" \
@ -51,7 +47,16 @@ define Build/Compile/HostPyRunHost
CFLAGS="$(HOST_CFLAGS)" \ CFLAGS="$(HOST_CFLAGS)" \
CPPFLAGS="$(HOST_CPPFLAGS) -I$(HOST_PYTHON_INC_DIR)" \ CPPFLAGS="$(HOST_CPPFLAGS) -I$(HOST_PYTHON_INC_DIR)" \
LDFLAGS="$(HOST_LDFLAGS) -lpython$(PYTHON_VERSION) -Wl$(comma)-rpath=$(STAGING_DIR_HOSTPKG)/lib" \ LDFLAGS="$(HOST_LDFLAGS) -lpython$(PYTHON_VERSION) -Wl$(comma)-rpath=$(STAGING_DIR_HOSTPKG)/lib" \
_PYTHON_HOST_PLATFORM=linux2 \ _PYTHON_HOST_PLATFORM=linux2
endef
# $(1) => commands to execute before running pythons script
# $(2) => python script and its arguments
# $(3) => additional variables
define Build/Compile/HostPyRunHost
$(call HostPython, \
$(if $(1),$(1);) \
$(call host_python_settings) \
$(3) \ $(3) \
, \ , \
$(2) \ $(2) \
@ -63,6 +68,7 @@ endef
# Note: I shamelessly copied this from Yousong's logic (from python-packages); # Note: I shamelessly copied this from Yousong's logic (from python-packages);
HOST_PYTHON_PIP:=$(STAGING_DIR_HOSTPKG)/bin/pip$(PYTHON_VERSION) HOST_PYTHON_PIP:=$(STAGING_DIR_HOSTPKG)/bin/pip$(PYTHON_VERSION)
define host_python_pip_install define host_python_pip_install
$(call host_python_settings) \
$(HOST_PYTHON_PIP) install \ $(HOST_PYTHON_PIP) install \
--root=$(1) \ --root=$(1) \
--prefix=$(2) \ --prefix=$(2) \

View file

@ -16,7 +16,7 @@ PYTHON_VERSION_MICRO:=$(PYTHON3_VERSION_MICRO)
PKG_NAME:=python3 PKG_NAME:=python3
# XXX: reset PKG_RELEASE to 1 only if Python's pip & setuptools versions have also bumped; # XXX: reset PKG_RELEASE to 1 only if Python's pip & setuptools versions have also bumped;
# otherwise, keep bumping PKG_RELEASE # otherwise, keep bumping PKG_RELEASE
PKG_RELEASE:=5 PKG_RELEASE:=6
PKG_VERSION:=$(PYTHON_VERSION).$(PYTHON_VERSION_MICRO) PKG_VERSION:=$(PYTHON_VERSION).$(PYTHON_VERSION_MICRO)
PKG_SOURCE:=Python-$(PKG_VERSION).tar.xz PKG_SOURCE:=Python-$(PKG_VERSION).tar.xz
@ -184,6 +184,16 @@ define Build/Compile
$(call Build/Compile/python3-pip) $(call Build/Compile/python3-pip)
endef endef
define Build/InstallMkFiles
$(INSTALL_DIR) $(STAGING_DIR)/mk/
$(INSTALL_DATA) \
./files/python-package.mk \
./files/python-host.mk \
./files/python-version.mk \
./files/python-package-install.sh \
$(STAGING_DIR)/mk/
endef
define Build/InstallDev define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/ $(1)/usr/lib/ $(INSTALL_DIR) $(1)/usr/include/ $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/python$(PYTHON_VERSION)/ $(INSTALL_DIR) $(1)/usr/lib/python$(PYTHON_VERSION)/
@ -197,6 +207,7 @@ define Build/InstallDev
$(CP) \ $(CP) \
$(PKG_INSTALL_DIR)/usr/lib/python$(PYTHON_VERSION)/config-$(PYTHON_VERSION) \ $(PKG_INSTALL_DIR)/usr/lib/python$(PYTHON_VERSION)/config-$(PYTHON_VERSION) \
$(1)/usr/lib/python$(PYTHON_VERSION)/ $(1)/usr/lib/python$(PYTHON_VERSION)/
$(call Build/InstallMkFiles)
endef endef
PYTHON3_BASE_LIB_FILES:= \ PYTHON3_BASE_LIB_FILES:= \
@ -274,21 +285,10 @@ define Host/Compile
endef endef
define Host/Install define Host/Install
$(call Build/InstallMkFiles)
$(MAKE) -C $(HOST_BUILD_DIR) install $(MAKE) -C $(HOST_BUILD_DIR) install
$(INSTALL_DIR) $(HOST_PYTHON3_DIR)/bin/ $(STAGING_DIR)/mk/ $(INSTALL_DIR) $(HOST_PYTHON3_DIR)/bin/ $(STAGING_DIR)/mk/
$(INSTALL_BIN) $(HOST_BUILD_DIR)/Parser/pgen $(HOST_PYTHON3_DIR)/bin/pgen3 $(INSTALL_BIN) $(HOST_BUILD_DIR)/Parser/pgen $(HOST_PYTHON3_DIR)/bin/pgen3
# Install these mk files in the Host/Install phase ;
# The Build/InstallDev rule is activated only for target builds.
# But if someone needs only the host Python, then
# these files need to be installed in this phase, and not Build/InstallDev
$(INSTALL_DATA) \
./files/python3-package.mk \
./files/python3-host.mk \
./files/python3-version.mk \
./files/python3-package-install.sh \
$(STAGING_DIR)/mk/
endef endef
$(eval $(call HostBuild)) $(eval $(call HostBuild))

View file

@ -37,12 +37,8 @@ define HostPython3
$(HOST_PYTHON3_BIN) $(2); $(HOST_PYTHON3_BIN) $(2);
endef endef
# $(1) => commands to execute before running pythons script define host_python3_settings
# $(2) => python script and its arguments ARCH="$(HOST_ARCH)" \
# $(3) => additional variables
define Build/Compile/HostPy3RunHost
$(call HostPython3, \
$(if $(1),$(1);) \
CC="$(HOSTCC)" \ CC="$(HOSTCC)" \
CCSHARED="$(HOSTCC) $(HOST_FPIC)" \ CCSHARED="$(HOSTCC) $(HOST_FPIC)" \
CXX="$(HOSTCXX)" \ CXX="$(HOSTCXX)" \
@ -51,7 +47,16 @@ define Build/Compile/HostPy3RunHost
CFLAGS="$(HOST_CFLAGS)" \ CFLAGS="$(HOST_CFLAGS)" \
CPPFLAGS="$(HOST_CPPFLAGS) -I$(HOST_PYTHON3_INC_DIR)" \ CPPFLAGS="$(HOST_CPPFLAGS) -I$(HOST_PYTHON3_INC_DIR)" \
LDFLAGS="$(HOST_LDFLAGS) -lpython$(PYTHON3_VERSION) -Wl$(comma)-rpath=$(STAGING_DIR_HOSTPKG)/lib" \ LDFLAGS="$(HOST_LDFLAGS) -lpython$(PYTHON3_VERSION) -Wl$(comma)-rpath=$(STAGING_DIR_HOSTPKG)/lib" \
_PYTHON_HOST_PLATFORM=linux2 \ _PYTHON_HOST_PLATFORM=linux2
endef
# $(1) => commands to execute before running pythons script
# $(2) => python script and its arguments
# $(3) => additional variables
define Build/Compile/HostPy3RunHost
$(call HostPython3, \
$(if $(1),$(1);) \
$(call host_python3_settings) \
$(3) \ $(3) \
, \ , \
$(2) \ $(2) \
@ -63,6 +68,7 @@ endef
# Note: I shamelessly copied this from Yousong's logic (from python-packages); # Note: I shamelessly copied this from Yousong's logic (from python-packages);
HOST_PYTHON3_PIP:=$(STAGING_DIR_HOSTPKG)/bin/pip$(PYTHON3_VERSION) HOST_PYTHON3_PIP:=$(STAGING_DIR_HOSTPKG)/bin/pip$(PYTHON3_VERSION)
define host_python3_pip_install define host_python3_pip_install
$(call host_python3_settings) \
$(HOST_PYTHON3_PIP) install \ $(HOST_PYTHON3_PIP) install \
--root=$(1) \ --root=$(1) \
--prefix=$(2) \ --prefix=$(2) \