从 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