python: introduce Build/Compile/HostPyRun{Host,Target}
[feed/packages.git] / lang / python / files / python-host.mk
1 #
2 # Copyright (C) 2015-2016 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 HOST_PYTHON_DIR:=$(STAGING_DIR)/host
9 HOST_PYTHON_INC_DIR:=$(HOST_PYTHON_DIR)/include/python$(PYTHON_VERSION)
10 HOST_PYTHON_LIB_DIR:=$(HOST_PYTHON_DIR)/lib/python$(PYTHON_VERSION)
11
12 HOST_PYTHON_PKG_DIR:=/lib/python$(PYTHON_VERSION)/site-packages
13
14 HOST_PYTHON_BIN:=$(HOST_PYTHON_DIR)/bin/python$(PYTHON_VERSION)
15
16 HOST_PYTHONPATH:=$(HOST_PYTHON_LIB_DIR):$(STAGING_DIR)/host/$(HOST_PYTHON_PKG_DIR)
17
18 define HostPython
19 if [ "$(strip $(3))" == "HOST" ]; then \
20 export PYTHONPATH="$(HOST_PYTHONPATH)"; \
21 export PYTHONDONTWRITEBYTECODE=0; \
22 else \
23 export PYTHONPATH="$(PYTHONPATH)"; \
24 export PYTHONDONTWRITEBYTECODE=1; \
25 export _python_sysroot="$(STAGING_DIR)"; \
26 export _python_prefix="/usr"; \
27 export _python_exec_prefix="/usr"; \
28 fi; \
29 export PYTHONOPTIMIZE=""; \
30 $(1) \
31 $(HOST_PYTHON_BIN) $(2);
32 endef
33
34 # $(1) => commands to execute before running pythons script
35 # $(2) => python script and its arguments
36 # $(3) => additional variables
37 define Build/Compile/HostPyRunHost
38 $(call HostPython, \
39 $(if $(1),$(1);) \
40 CC="$(HOSTCC)" \
41 CCSHARED="$(HOSTCC) $(HOST_FPIC)" \
42 CXX="$(HOSTCXX)" \
43 LD="$(HOSTCC)" \
44 LDSHARED="$(HOSTCC) -shared" \
45 CFLAGS="$(HOST_CFLAGS)" \
46 CPPFLAGS="$(HOST_CPPFLAGS) -I$(HOST_PYTHON_INC_DIR)" \
47 LDFLAGS="$(HOST_LDFLAGS) -lpython$(PYTHON_VERSION) -Wl$(comma)-rpath=$(STAGING_DIR)/host/lib" \
48 _PYTHON_HOST_PLATFORM=linux2 \
49 $(3) \
50 , \
51 $(2) \
52 , \
53 HOST \
54 )
55 endef
56
57
58 # $(1) => build subdir
59 # $(2) => additional arguments to setup.py
60 # $(3) => additional variables
61 define Build/Compile/HostPyMod
62 $(call Build/Compile/HostPyRunHost, \
63 cd $(HOST_BUILD_DIR)/$(strip $(1)), \
64 ./setup.py $(2), \
65 $(3))
66 endef
67