summaryrefslogtreecommitdiff
path: root/lang/python/files/python-package.mk
diff options
context:
space:
mode:
authorAlexandru Ardelean <aa@ocedo.com>2014-09-24 11:08:37 +0300
committerAlexandru Ardelean <aa@ocedo.com>2014-10-06 17:31:23 +0300
commit0169d40b8147e8cbf579b5a7ce2e4b7867164aab (patch)
tree7f45c627e96d316652ca570b5d55190e7267c3a2 /lang/python/files/python-package.mk
parenta6a3037fbdda502a22528a58c342ea2e3bdb081a (diff)
python: import package as-is from old packages
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
Diffstat (limited to 'lang/python/files/python-package.mk')
-rw-r--r--lang/python/files/python-package.mk77
1 files changed, 77 insertions, 0 deletions
diff --git a/lang/python/files/python-package.mk b/lang/python/files/python-package.mk
new file mode 100644
index 000000000..70e630059
--- /dev/null
+++ b/lang/python/files/python-package.mk
@@ -0,0 +1,77 @@
+#
+# Copyright (C) 2007 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+PYTHON_VERSION=2.7
+
+PYTHON_DIR:=$(STAGING_DIR)/usr
+PYTHON_BIN_DIR:=$(PYTHON_DIR)/bin
+PYTHON_INC_DIR:=$(PYTHON_DIR)/include/python$(PYTHON_VERSION)
+PYTHON_LIB_DIR:=$(PYTHON_DIR)/lib/python$(PYTHON_VERSION)
+
+PYTHON_PKG_DIR:=/usr/lib/python$(PYTHON_VERSION)/site-packages
+
+PYTHON:=python$(PYTHON_VERSION)
+
+HOST_PYTHON_BIN:=$(STAGING_DIR)/usr/bin/hostpython
+
+define HostPython
+ ( export PYTHONPATH="$(PYTHON_LIB_DIR):$(STAGING_DIR)/$(PYTHON_PKG_DIR)"; \
+ export PYTHONOPTIMIZE=""; \
+ export PYTHONDONTWRITEBYTECODE=1; \
+ $(1) \
+ $(HOST_PYTHON_BIN) $(2); \
+ )
+endef
+
+define PyPackage
+ $(call shexport,PyPackage/$(1)/filespec)
+
+ define Package/$(1)/install
+ @$(SH_FUNC) getvar $$(call shvar,PyPackage/$(1)/filespec) | ( \
+ IFS='|'; \
+ while read fop fspec fperm; do \
+ if [ "$$$$$$$$fop" = "+" ]; then \
+ dpath=`dirname "$$$$$$$$fspec"`; \
+ if [ -n "$$$$$$$$fperm" ]; then \
+ dperm="-m$$$$$$$$fperm"; \
+ else \
+ dperm=`stat -c "%a" $(PKG_INSTALL_DIR)$$$$$$$$dpath`; \
+ fi; \
+ mkdir -p $$$$$$$$$dperm $$(1)$$$$$$$$dpath; \
+ echo "copying: '$$$$$$$$fspec'"; \
+ cp -fpR $(PKG_INSTALL_DIR)$$$$$$$$fspec $$(1)$$$$$$$$dpath/; \
+ if [ -n "$$$$$$$$fperm" ]; then \
+ chmod -R $$$$$$$$fperm $$(1)$$$$$$$$fspec; \
+ fi; \
+ elif [ "$$$$$$$$fop" = "-" ]; then \
+ echo "removing: '$$$$$$$$fspec'"; \
+ rm -fR $$(1)$$$$$$$$fspec; \
+ elif [ "$$$$$$$$fop" = "=" ]; then \
+ echo "setting permissions: '$$$$$$$$fperm' on '$$$$$$$$fspec'"; \
+ chmod -R $$$$$$$$fperm $$(1)$$$$$$$$fspec; \
+ fi; \
+ done; \
+ )
+ $(call PyPackage/$(1)/install,$$(1))
+ endef
+endef
+
+# $(1) => build subdir
+# $(2) => additional arguments to setup.py
+# $(3) => additional variables
+define Build/Compile/PyMod
+ $(call HostPython, \
+ cd $(PKG_BUILD_DIR)/$(strip $(1)); \
+ CFLAGS="$(TARGET_CFLAGS)" \
+ CPPFLAGS="$(TARGET_CPPFLAGS)" \
+ LDFLAGS="$(TARGET_LDFLAGS)" \
+ $(3) \
+ , \
+ ./setup.py $(2) \
+ )
+ find $(PKG_INSTALL_DIR) -name "*\.pyc" -o -name "*\.pyo" | xargs rm -f
+endef