[Buildroot] buildroot - python problem

Ulf Samuelsson ulf at atmel.com
Thu May 8 00:31:26 UTC 2008


tor 2008-05-08 klockan 10:27 +1000 skrev Hamish Moffatt:
> On Wed, May 07, 2008 at 05:07:18PM +0200, Ulf Samuelsson wrote:
> > The python.mk looks pretty unclean to me.
> > Should not the host python be built in the toolchain directory,
> > and the result moved to STAGING_DIR?
> > Then it could be easily be used for other stuff as well.
> 
> I'm using the python package here and never saw the problem reported in
> this thread. Your suggestion of installing properly into $STAGING_DIR
> seems reasonable though.
> 
> I am planning to update the package for Python 2.5 soon so I will fix
> that up at the same time. Next week hopefully.
> 
> Changing versions might break some people's code, so it may be necessary
> to support multiple versions and allow the user to choose. Do you other
> Python users have any comments on this?
> 
> Hamish

Here is a start, not tested yet...
Index: package/python/python.mk
===================================================================
--- package/python/python.mk	(revision 21945)
+++ package/python/python.mk	(arbetskopia)
@@ -8,6 +8,10 @@
 PYTHON_SOURCE:=Python-$(PYTHON_VERSION).tar.bz2
 PYTHON_SITE:=http://python.org/ftp/python/$(PYTHON_VERSION)
 PYTHON_DIR:=$(BUILD_DIR)/Python-$(PYTHON_VERSION)
+HOST_PYTHON_DIR:=$(TOOL_BUILD_DIR)/Python-$(PYTHON_VERSION)
+HOST_PYTHON:=$(STAGING_DIR)/bin/python
+HOST_PYTHON_PGEN:=$(HOST_PYTHON_DIR)/Parser/pgen
+
 PYTHON_CAT:=$(BZCAT)
 PYTHON_BINARY:=python
 PYTHON_TARGET_BINARY:=usr/bin/python
@@ -70,30 +74,39 @@
 $(DL_DIR)/$(PYTHON_SOURCE):
 	 $(WGET) -P $(DL_DIR) $(PYTHON_SITE)/$(PYTHON_SOURCE)
 
-python-source: $(DL_DIR)/$(PYTHON_SOURCE)
-
-$(PYTHON_DIR)/.unpacked: $(DL_DIR)/$(PYTHON_SOURCE)
-	$(PYTHON_CAT) $(DL_DIR)/$(PYTHON_SOURCE) | tar -C $(BUILD_DIR)
$(TAR_OPTIONS) -
+$(HOST_PYTHON_DIR)/.unpacked: $(DL_DIR)/$(PYTHON_SOURCE)
+	$(PYTHON_CAT) $(DL_DIR)/$(PYTHON_SOURCE) | tar -C $(TOOL_BUILD_DIR)
$(TAR_OPTIONS) -
 	touch $@
 
-$(PYTHON_DIR)/.patched: $(PYTHON_DIR)/.unpacked
-	toolchain/patch-kernel.sh $(PYTHON_DIR) package/python/ python\*.patch
+$(HOST_PYTHON_DIR)/.patched: $(HOST_PYTHON_DIR)/.unpacked
+	toolchain/patch-kernel.sh $(HOST_PYTHON_DIR) package/python/ python
\*.patch
 	touch $@
 
-$(PYTHON_DIR)/.hostpython: $(PYTHON_DIR)/.patched
+$(HOST_PYTHON_DIR)/.configured: $(HOST_PYTHON_DIR)/.patched
 	(cd $(PYTHON_DIR); rm -rf config.cache; \
 		CC="$(HOSTCC)" OPT="-O2" \
 		./configure \
 		--with-cxx=no \
-		$(DISABLE_NLS) && \
-		$(MAKE) python Parser/pgen && \
-		mv python hostpython && \
-		mv Parser/pgen Parser/hostpgen && \
-		-$(MAKE) distclean \
-	) && \
+		$(DISABLE_NLS)
+	)
 	touch $@
 
-$(PYTHON_DIR)/.configured: $(PYTHON_DIR)/.hostpython
+$(HOST_PYTHON_DIR)/python: $(HOST_PYTHON_DIR)/.configured
+	$(MAKE) -C $(HOST_PYTHON_DIR) python Parser/pgen
+
+$(HOST_PYTHON): $(HOST_PYTHON_DIR)/python
+	cp $(HOST_PYTHON_DIR)/python $(HOST_PYTHON)
+# ---------------------------
+
+$(PYTHON_DIR)/.unpacked: $(DL_DIR)/$(PYTHON_SOURCE)
+	$(PYTHON_CAT) $(DL_DIR)/$(PYTHON_SOURCE) | tar -C $(BUILD_DIR)
$(TAR_OPTIONS) -
+	touch $@
+
+$(PYTHON_DIR)/.patched: $(PYTHON_DIR)/.unpacked
+	toolchain/patch-kernel.sh $(PYTHON_DIR) package/python/ python\*.patch
+	touch $@
+
+$(PYTHON_DIR)/.configured: $(PYTHON_DIR)/.patched
 	(cd $(PYTHON_DIR); rm -rf config.cache; \
 		$(TARGET_CONFIGURE_OPTS) \
 		$(TARGET_CONFIGURE_ARGS) \
@@ -118,7 +131,7 @@
 		PYTHON_MODULES_INCLUDE=$(STAGING_DIR)/usr/include \
 		PYTHON_MODULES_LIB=$(STAGING_DIR)/lib \
 		PYTHON_DISABLE_MODULES="$(BR2_PYTHON_DISABLED_MODULES)" \
-		HOSTPYTHON=./hostpython HOSTPGEN=./Parser/hostpgen
+		HOSTPYTHON=$(HOST_PYTHON) HOSTPGEN=$(HOST_PYTHON_PGEN)
 
 $(TARGET_DIR)/$(PYTHON_TARGET_BINARY): $(PYTHON_DIR)/$(PYTHON_BINARY)
 ifneq ($(BR2_PACKAGE_PYTHON_SSL),y)
@@ -130,11 +143,13 @@
 		PYTHON_MODULES_INCLUDE=$(STAGING_DIR)/usr/include \
 		PYTHON_MODULES_LIB=$(STAGING_DIR)/lib \
 		PYTHON_DISABLE_MODULES="$(BR2_PYTHON_DISABLED_MODULES)" \
-		HOSTPYTHON=./hostpython HOSTPGEN=./Parser/hostpgen && \
-	rm $(TARGET_DIR)/usr/bin/python?.? && \
-	rm $(TARGET_DIR)/usr/bin/idle && \
-	rm $(TARGET_DIR)/usr/bin/pydoc && \
-	find $(TARGET_DIR)/usr/lib/ -name '*.pyo' -exec rm {} \; && \
+		HOSTPYTHON=$(HOST_PYTHON) HOSTPGEN=$(HOST_PYTHON_PGEN)
+
+python_cleanup: $(TARGET_DIR)/$(PYTHON_TARGET_BINARY)
+	rm $(TARGET_DIR)/usr/bin/python?.?
+	rm $(TARGET_DIR)/usr/bin/idle
+	rm $(TARGET_DIR)/usr/bin/pydoc
+	find $(TARGET_DIR)/usr/lib/ -name '*.pyo' -exec rm {} \;
 	rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
 		$(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc \
 		$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_SHORT)/test
@@ -163,8 +178,10 @@
 	rm -rf $(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_SHORT)/lib-tk
 endif
 
-python: uclibc $(PYTHON_DEPS) $(TARGET_DIR)/$(PYTHON_TARGET_BINARY)
+python-source: $(DL_DIR)/$(PYTHON_SOURCE)
 
+python: uclibc $(PYTHON_DEPS) $(HOST_PYTHON)
$(TARGET_DIR)/$(PYTHON_TARGET_BINARY) python-cleanup
+
 python-clean:
 	-$(MAKE) -C $(PYTHON_DIR) distclean
 	rm -f $(PYTHON_DIR)/.configured $(TARGET_DIR)/$(PYTHON_TARGET_BINARY)


-- 
Best Regards
Ulf Samuelsson
Atmel Nordic AB
Mail: Box 2033, 174 50 Sundbyberg
Visit:Kavallerivägen 24, 174 58 Sundbyberg
Phone: +46 8 441 54 22, GSM: +46 706 22 44 57
eMail: ulf at atmel.com

-------------- next part --------------
A non-text attachment was scrubbed...
Name: python.patch
Type: text/x-patch
Size: 4174 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20080508/9d0d01f0/attachment-0003.bin>


More information about the buildroot mailing list