|
#
|
|
# Copyright (C) 2006-2014 OpenWrt.org
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
# The file included below defines PYTHON_VERSION
|
|
include ./files/python3-package.mk
|
|
|
|
PYTHON_VERSION:=$(PYTHON3_VERSION)
|
|
PYTHON_VERSION_MICRO:=$(PYTHON3_VERSION_MICRO)
|
|
|
|
PKG_NAME:=python3
|
|
PKG_RELEASE:=1
|
|
PKG_VERSION:=$(PYTHON_VERSION).$(PYTHON_VERSION_MICRO)
|
|
|
|
PKG_SOURCE:=Python-$(PKG_VERSION).tar.xz
|
|
PKG_SOURCE_URL:=http://www.python.org/ftp/python/$(PKG_VERSION)
|
|
PKG_MD5SUM:=36fc7327c02c6f12fa24fc9ba78039e3
|
|
|
|
PKG_LICENSE:=PSF
|
|
PKG_LICENSE_FILES:=LICENSE Modules/_ctypes/libffi_msvc/LICENSE Modules/_ctypes/darwin/LICENSE Modules/_ctypes/libffi/LICENSE Modules/_ctypes/libffi_osx/LICENSE Tools/pybench/LICENSE
|
|
|
|
PKG_INSTALL:=1
|
|
PKG_BUILD_PARALLEL:=1
|
|
HOST_BUILD_PARALLEL:=1
|
|
|
|
PKG_BUILD_DIR:=$(BUILD_DIR)/Python-$(PKG_VERSION)
|
|
HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/Python-$(PKG_VERSION)
|
|
|
|
PKG_BUILD_DEPENDS:=libffi/host python3/host
|
|
|
|
include $(INCLUDE_DIR)/host-build.mk
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
define Package/python3/Default
|
|
SUBMENU:=Python
|
|
SECTION:=lang
|
|
CATEGORY:=Languages
|
|
TITLE:=Python $(PYTHON_VERSION) programming language
|
|
URL:=http://www.python.org/
|
|
MAINTAINER:=Alexandru Ardelean <ardeleanalex@gmail.com>
|
|
endef
|
|
|
|
define Package/python3/Default/description
|
|
Python is a dynamic object-oriented programming language that can be used
|
|
for many kinds of software development. It offers strong support for
|
|
integration with other languages and tools, comes with extensive standard
|
|
libraries, and can be learned in a few days. Many Python programmers
|
|
report substantial productivity gains and feel the language encourages
|
|
the development of higher quality, more maintainable code.
|
|
endef
|
|
|
|
define Package/python3-base
|
|
$(call Package/python3/Default)
|
|
TITLE:=Python $(PYTHON_VERSION) interpreter
|
|
DEPENDS:=+libpthread +zlib +libffi
|
|
endef
|
|
|
|
define Package/python3-base/description
|
|
This package contains only the interpreter and the bare minimum
|
|
for the interpreter to start.
|
|
endef
|
|
|
|
define Package/python3
|
|
$(call Package/python3/Default)
|
|
DEPENDS:=+python3-base +libncursesw +libbz2 +libgdbm +libsqlite3 +libdb47 +libopenssl
|
|
endef
|
|
|
|
define Package/python3/description
|
|
This package contains the (almost) full Python install.
|
|
endef
|
|
|
|
MAKE_FLAGS+=\
|
|
CROSS_COMPILE=yes \
|
|
LD="$(TARGET_CC)" \
|
|
PGEN=pgen3
|
|
|
|
EXTRA_CFLAGS+= \
|
|
-DNDEBUG -fno-inline
|
|
EXTRA_LDFLAGS+= \
|
|
-L$(PKG_BUILD_DIR)
|
|
|
|
ENABLE_IPV6:=
|
|
ifeq ($(CONFIG_IPV6),y)
|
|
ENABLE_IPV6 += --enable-ipv6
|
|
endif
|
|
|
|
CONFIGURE_ARGS+= \
|
|
--sysconfdir=/etc \
|
|
--enable-shared \
|
|
--without-cxx-main \
|
|
--with-threads \
|
|
--with-system-ffi="$(STAGING_DIR)/usr" \
|
|
--without-pymalloc \
|
|
--without-ensurepip \
|
|
$(ENABLE_IPV6) \
|
|
CONFIG_SITE="$(PKG_BUILD_DIR)/config.site" \
|
|
OPT="$(TARGET_CFLAGS)"
|
|
|
|
define Build/Prepare
|
|
$(call Build/Prepare/Default)
|
|
$(CP) ./files/config.site $(PKG_BUILD_DIR)/config.site
|
|
endef
|
|
|
|
define Build/InstallDev
|
|
$(INSTALL_DIR) $(STAGING_DIR)/mk/
|
|
$(INSTALL_DIR) $(1)/usr/include/ $(1)/usr/lib/
|
|
$(INSTALL_DIR) $(1)/usr/lib/python$(PYTHON_VERSION)/
|
|
$(INSTALL_DATA) ./files/python3-package.mk $(STAGING_DIR)/mk/
|
|
$(CP) \
|
|
$(PKG_INSTALL_DIR)/usr/include/python$(PYTHON_VERSION) \
|
|
$(1)/usr/include/
|
|
$(CP) \
|
|
$(STAGING_DIR_HOST)/lib/python$(PYTHON_VERSION) \
|
|
$(PKG_INSTALL_DIR)/usr/lib/libpython$(PYTHON_VERSION).so* \
|
|
$(1)/usr/lib/
|
|
$(CP) \
|
|
$(PKG_INSTALL_DIR)/usr/lib/python$(PYTHON_VERSION)/config-$(PYTHON_VERSION) \
|
|
$(1)/usr/lib/python$(PYTHON_VERSION)/
|
|
endef
|
|
|
|
define Py3Package/python3-base/filespec
|
|
+|/usr/bin/python$(PYTHON_VERSION)
|
|
+|/usr/lib/python$(PYTHON_VERSION)/encodings
|
|
+|/usr/lib/python$(PYTHON_VERSION)/_collections_abc.py
|
|
+|/usr/lib/python$(PYTHON_VERSION)/_sitebuiltins.py
|
|
+|/usr/lib/python$(PYTHON_VERSION)/_sysconfigdata.py
|
|
+|/usr/lib/python$(PYTHON_VERSION)/_weakrefset.py
|
|
+|/usr/lib/python$(PYTHON_VERSION)/abc.py
|
|
+|/usr/lib/python$(PYTHON_VERSION)/codecs.py
|
|
+|/usr/lib/python$(PYTHON_VERSION)/genericpath.py
|
|
+|/usr/lib/python$(PYTHON_VERSION)/io.py
|
|
+|/usr/lib/python$(PYTHON_VERSION)/os.py
|
|
+|/usr/lib/python$(PYTHON_VERSION)/posixpath.py
|
|
+|/usr/lib/python$(PYTHON_VERSION)/site.py
|
|
+|/usr/lib/python$(PYTHON_VERSION)/sysconfig.py
|
|
+|/usr/lib/python$(PYTHON_VERSION)/stat.py
|
|
endef
|
|
|
|
define Py3Package/python3/filespec
|
|
+|/usr/lib/python$(PYTHON_VERSION)
|
|
-|/usr/lib/python$(PYTHON_VERSION)/config-$(PYTHON_VERSION)
|
|
-|/usr/lib/python$(PYTHON_VERSION)/distutils/cygwinccompiler.py
|
|
-|/usr/lib/python$(PYTHON_VERSION)/distutils/command/wininst*
|
|
-|/usr/lib/python$(PYTHON_VERSION)/idlelib
|
|
-|/usr/lib/python$(PYTHON_VERSION)/lib2to3
|
|
-|/usr/lib/python$(PYTHON_VERSION)/tkinter
|
|
-|/usr/lib/python$(PYTHON_VERSION)/turtledemo
|
|
-|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/_test*.so
|
|
-|/usr/lib/python$(PYTHON_VERSION)/lib-dynload/readline*.so
|
|
-|/usr/lib/python$(PYTHON_VERSION)/pdb.doc
|
|
-|/usr/lib/python$(PYTHON_VERSION)/test
|
|
-|/usr/lib/python$(PYTHON_VERSION)/webbrowser.py
|
|
-|/usr/lib/python$(PYTHON_VERSION)/*/test
|
|
-|/usr/lib/python$(PYTHON_VERSION)/*/tests
|
|
endef
|
|
|
|
define Py3Package/python3-base/install
|
|
# Adding the lib-dynload folder (even just empty) suppresses 2 warnings when starting Python
|
|
$(INSTALL_DIR) $(1)/usr/lib/python$(PYTHON_VERSION)/lib-dynload/
|
|
$(INSTALL_DIR) $(1)/usr/bin
|
|
$(LN) python$(PYTHON_VERSION) $(1)/usr/bin/python3
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libpython$(PYTHON_VERSION).so* $(1)/usr/lib/
|
|
endef
|
|
|
|
HOST_CONFIGURE_ARGS+= \
|
|
--without-cxx-main \
|
|
--without-pymalloc \
|
|
--without-ensurepip \
|
|
--with-threads \
|
|
--prefix=$(STAGING_DIR_HOST) \
|
|
CONFIG_SITE= \
|
|
OPT="$(HOST_CFLAGS)"
|
|
|
|
define Host/Compile
|
|
+$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) python Parser/pgen
|
|
+$(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR) sharedmods
|
|
endef
|
|
|
|
define Host/Install
|
|
$(INSTALL_DIR) $(STAGING_DIR_HOST)/bin/
|
|
$(MAKE) -C $(HOST_BUILD_DIR) install
|
|
$(INSTALL_BIN) $(HOST_BUILD_DIR)/Parser/pgen $(STAGING_DIR_HOST)/bin/pgen3
|
|
endef
|
|
|
|
$(eval $(call HostBuild))
|
|
|
|
$(eval $(call Py3Package,python3-base))
|
|
$(eval $(call Py3Package,python3))
|
|
|
|
$(eval $(call BuildPackage,python3-base))
|
|
$(eval $(call BuildPackage,python3))
|