我正在尝试编译PyPy,以便在OpenWrt配置中使用,但我很难做到这一点。
我的主要问题是:
pypy-c和lib*.so二进制文件就可以做到这一点,还是我必须从PyPy的编译文件中复制所有内容?
下面是在文件上运行目录结构之后的make。pypy可执行文件等)。我能用它代替从源头构建它吗?这是我的制造文件。
include $(TOPDIR)/rules.mk
PKG_NAME:=PyPy
PKG_VERSION:=5.8.0
PKG_RELEASE:=1
PKG_MD5SUM:=504c2d522595baf8775ae1045a217a2b120732537861d31b889d47c340b58bd5
PKG_SOURCE_NAME:=pypy2
PKG_SOURCE_URL:=https://bitbucket.org/pypy/pypy/downloads/
PKG_SOURCE:=$(PKG_SOURCE_NAME)-v$(PKG_VERSION)-src.tar.bz2
PKG_BUILD_DEPENDS:=python
PKG_CAT:=bzcat
PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)$(PKG_SOURCE_NAME)-v$(PKG_VERSION)-src
include $(INCLUDE_DIR)/package.mk
$(call include_mk, python-package.mk)
define Package/PyPy
SECTION:=utils
CATEGORY:=Utilities
TITLE:=PyPy
URL:=https://pypy.org/index.html
DEPENDS:=+libffi +libexpat +libunwind
endef
define Package/PyPy/description
PyPy is an alternate implementation of the Python programming language written in Python.
This distribution is for Linux architecture, using Python 2.
endef
define Package/PyPy/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/pypy-c $(1)/usr/bin
$(CP) (PKG_BUILD_DIR)/*.so $(1)/usr/lib
$(INSTALL_BIN) $(PKG_BUILD_DIR)/pypy/bin/* $(1)/usr/bin
endef
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR)
endef
$(eval $(call BuildPackage,PyPy))发布于 2017-08-03 21:03:04
我需要查看整个过程:上面Makefile的部分、其他部分,如rules.mk、package.mk、命令行参数和环境变量,以便了解哪些不起作用。
PYPY_USESSION_DIR、PYPY_USESSION_BASENAME和编号系统,以确保每次第一阶段(从RPython到C的转换)将结果放入一个新的干净目录中。因此,如果重新启动进程,就会丢失以前的工作。我建议您在理解构建、编译、包、安装过程之前不要使用不受支持的Makefile,然后一旦您完成了工作安装,帮助PyPy项目改进这个过程,直到它可以自动变成Makefile为止。
发布于 2017-08-03 21:09:47
如果您在OpenWRT上运行支持的硬件和操作系统,那么使用二进制发行版而不是从源代码编译会更好。在这种情况下,Makefile应该下载一个二进制发行版并简单地安装它。
如果您使用的是不同的CPU,那么PyPy很可能不会在您的硬件上开箱即用,您将不得不运行测试,以确保JIT实际上会使事情变得更快。
https://stackoverflow.com/questions/45476536
复制相似问题