1 #############################################################
5 #############################################################
7 PYTHON_SOURCE
:=Python-
$(PYTHON_VERSION
).
tar.bz2
8 PYTHON_SITE
:=http
://python.org
/ftp
/python
/$(PYTHON_VERSION
)
9 PYTHON_DIR
:=$(BUILD_DIR
)/Python-
$(PYTHON_VERSION
)
12 PYTHON_TARGET_BINARY
:=usr
/bin
/python
14 # these could use checks for some BR2_PACKAGE_foo,y
15 BR2_PYTHON_DISABLED_MODULES
=readline pyexpat dbm gdbm bsddb \
16 _curses _curses_panel _tkinter nis zipfile
18 $(DL_DIR
)/$(PYTHON_SOURCE
):
19 $(WGET
) -P
$(DL_DIR
) $(PYTHON_SITE
)/$(PYTHON_SOURCE
)
21 python-source
: $(DL_DIR
)/$(PYTHON_SOURCE
)
23 $(PYTHON_DIR
)/.unpacked
: $(DL_DIR
)/$(PYTHON_SOURCE
)
24 $(PYTHON_CAT
) $(DL_DIR
)/$(PYTHON_SOURCE
) |
tar -C
$(BUILD_DIR
) $(TAR_OPTIONS
) -
27 $(PYTHON_DIR
)/.patched
: $(PYTHON_DIR
)/.unpacked
28 toolchain
/patch-kernel.sh
$(PYTHON_DIR
) package
/python
/ python\
*.patch
31 $(PYTHON_DIR
)/.hostpython
: $(PYTHON_DIR
)/.patched
32 (cd
$(PYTHON_DIR
); rm -rf config.cache
; \
33 CC
="$(HOSTCC)" OPT
="-O2" \
37 $(MAKE
) python Parser
/pgen
&& \
38 mv python hostpython
&& \
39 mv Parser
/pgen Parser
/hostpgen
&& \
44 $(PYTHON_DIR
)/.configured
: $(PYTHON_DIR
)/.hostpython
45 (cd
$(PYTHON_DIR
); rm -rf config.cache
; \
46 $(TARGET_CONFIGURE_OPTS
) \
47 $(TARGET_CONFIGURE_ARGS
) \
48 OPT
="$(TARGET_CFLAGS)" \
50 --target
=$(GNU_TARGET_NAME
) \
51 --host
=$(GNU_TARGET_NAME
) \
52 --build
=$(GNU_HOST_NAME
) \
61 $(PYTHON_DIR
)/$(PYTHON_BINARY
): $(PYTHON_DIR
)/.configured
62 export PYTHON_DISABLE_SSL
=1
63 $(MAKE
) CC
=$(TARGET_CC
) -C
$(PYTHON_DIR
) DESTDIR
=$(TARGET_DIR
) \
64 PYTHON_MODULES_INCLUDE
=$(STAGING_DIR
)/usr
/include \
65 PYTHON_MODULES_LIB
=$(STAGING_DIR
)/lib \
66 PYTHON_DISABLE_MODULES
="$(BR2_PYTHON_DISABLED_MODULES)" \
67 HOSTPYTHON
=.
/hostpython HOSTPGEN
=.
/Parser
/hostpgen
69 $(TARGET_DIR
)/$(PYTHON_TARGET_BINARY
): $(PYTHON_DIR
)/$(PYTHON_BINARY
)
70 export PYTHON_DISABLE_SSL
=1
71 LD_LIBRARY_PATH
=$(STAGING_DIR
)/lib
72 $(MAKE
) CC
=$(TARGET_CC
) -C
$(PYTHON_DIR
) install \
73 DESTDIR
=$(TARGET_DIR
) CROSS_COMPILE
=yes \
74 PYTHON_MODULES_INCLUDE
=$(STAGING_DIR
)/usr
/include \
75 PYTHON_MODULES_LIB
=$(STAGING_DIR
)/lib \
76 PYTHON_DISABLE_MODULES
="$(BR2_PYTHON_DISABLED_MODULES)" \
77 HOSTPYTHON
=.
/hostpython HOSTPGEN
=.
/Parser
/hostpgen
&& \
78 rm $(TARGET_DIR
)/usr
/bin
/python?.?
&& \
79 rm $(TARGET_DIR
)/usr
/bin
/idle
&& \
80 rm $(TARGET_DIR
)/usr
/bin
/pydoc
&& \
81 find
$(TARGET_DIR
)/usr
/lib
/ -name
'*.pyc' -exec
rm {} \
; && \
82 find
$(TARGET_DIR
)/usr
/lib
/ -name
'*.pyo' -exec
rm {} \
; && \
83 rm -rf
$(TARGET_DIR
)/share
/locale
$(TARGET_DIR
)/usr
/info \
84 $(TARGET_DIR
)/usr
/man
$(TARGET_DIR
)/usr
/share
/doc \
85 $(TARGET_DIR
)/usr
/lib
/python
*/test
87 python
: $(TARGET_DIR
)/$(PYTHON_TARGET_BINARY
)
90 -$(MAKE
) -C
$(PYTHON_DIR
) distclean
91 rm $(PYTHON_DIR
)/.configured
$(TARGET_DIR
)/$(PYTHON_TARGET_BINARY
)
95 #############################################################
97 # Toplevel Makefile options
99 #############################################################
100 ifeq ($(BR2_PACKAGE_PYTHON
),y
)