从 OpenWrt makefile 安装一个 python 模块
Install a python module from OpenWrt makefile
我需要编写一个 openWrt Makefile,它将模块安装到 python,使用安装工具,即调用:
python setup.py 安装
我的包裹中有 setup.py 个文件。
未能在 OpenWrt 包构建参考中找到答案
我希望 OpenWrt 中有一些安装工具的基础结构?我想我必须包含一些 .mk 文件
$(call include_mk, python-package.mk)?
然后从中调用一些目标?
将不胜感激任何样品Makefile/manual
您是在谈论您自己的私有 python 模块还是公开可用的模块?
这是我使用的 'idna' 库的 Makefile 示例。
include $(TOPDIR)/rules.mk
PKG_NAME:=idna
PKG_VERSION:=2.6
PKG_RELEASE:=1
PKG_SOURCE:=idna-2.6.tar.gz
PKG_SOURCE_URL:=https://pypi.python.org/packages/f4/bd/0467d62790828c23c47fc1dfa1b1f052b24efdf5290f071c7a91d0d82fd3/
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/
#PKG_BUILD_DEPENDS:=python-setuptools
include $(INCLUDE_DIR)/package.mk
$(call include_mk, python-package.mk)
define Package/idna
SECTION:=lang-python
CATEGORY:=Languages
SUBMENU:=Python
TITLE:=idna
URL:=https://pypi.python.org/pypi/idna
DEPENDS:=+python
endef
define Package/idna/description
Internationalized Domain Names in Applications (IDNA)
endef
define Build/Compile
$(call Build/Compile/PyMod,., \
install --prefix="/usr" --root="$(PKG_INSTALL_DIR)" \
)
endef
define Build/InstallDev
$(INSTALL_DIR) $(STAGING_DIR)$(PYTHON_PKG_DIR)
$(CP) \
$(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
$(STAGING_DIR)$(PYTHON_PKG_DIR)/
[ ! -e $(PKG_INSTALL_DIR)/usr/include ] || $(CP) \
$(PKG_INSTALL_DIR)/usr/include/* \
$(STAGING_DIR)/usr/include/
endef
define Package/idna/install
$(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)/
$(CP) \
$(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
$(1)$(PYTHON_PKG_DIR)/
endef
$(eval $(call BuildPackage,idna))
如果你有自己的 package/source,然后将它托管在像 gitlab 这样的地方,并将其用作你的源 url 等等......像这样..
PKG_NAME:=myPackage
PKG_VERSION:=1.0
PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=git@gitlab.com:yourprofile/myPackage.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=d65acd7649939505ebedd445f301c46b52616532
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
我需要编写一个 openWrt Makefile,它将模块安装到 python,使用安装工具,即调用: python setup.py 安装
我的包裹中有 setup.py 个文件。
未能在 OpenWrt 包构建参考中找到答案
我希望 OpenWrt 中有一些安装工具的基础结构?我想我必须包含一些 .mk 文件 $(call include_mk, python-package.mk)?
然后从中调用一些目标?
将不胜感激任何样品Makefile/manual
您是在谈论您自己的私有 python 模块还是公开可用的模块? 这是我使用的 'idna' 库的 Makefile 示例。
include $(TOPDIR)/rules.mk
PKG_NAME:=idna
PKG_VERSION:=2.6
PKG_RELEASE:=1
PKG_SOURCE:=idna-2.6.tar.gz
PKG_SOURCE_URL:=https://pypi.python.org/packages/f4/bd/0467d62790828c23c47fc1dfa1b1f052b24efdf5290f071c7a91d0d82fd3/
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/
#PKG_BUILD_DEPENDS:=python-setuptools
include $(INCLUDE_DIR)/package.mk
$(call include_mk, python-package.mk)
define Package/idna
SECTION:=lang-python
CATEGORY:=Languages
SUBMENU:=Python
TITLE:=idna
URL:=https://pypi.python.org/pypi/idna
DEPENDS:=+python
endef
define Package/idna/description
Internationalized Domain Names in Applications (IDNA)
endef
define Build/Compile
$(call Build/Compile/PyMod,., \
install --prefix="/usr" --root="$(PKG_INSTALL_DIR)" \
)
endef
define Build/InstallDev
$(INSTALL_DIR) $(STAGING_DIR)$(PYTHON_PKG_DIR)
$(CP) \
$(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
$(STAGING_DIR)$(PYTHON_PKG_DIR)/
[ ! -e $(PKG_INSTALL_DIR)/usr/include ] || $(CP) \
$(PKG_INSTALL_DIR)/usr/include/* \
$(STAGING_DIR)/usr/include/
endef
define Package/idna/install
$(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)/
$(CP) \
$(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
$(1)$(PYTHON_PKG_DIR)/
endef
$(eval $(call BuildPackage,idna))
如果你有自己的 package/source,然后将它托管在像 gitlab 这样的地方,并将其用作你的源 url 等等......像这样..
PKG_NAME:=myPackage
PKG_VERSION:=1.0
PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=git@gitlab.com:yourprofile/myPackage.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=d65acd7649939505ebedd445f301c46b52616532
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz