* OT: determining in `Makefile.in` the Python version/path
@ 2011-01-09 21:07 Paul Menzel
2011-01-09 22:17 ` Andreas Oberritter
0 siblings, 1 reply; 3+ messages in thread
From: Paul Menzel @ 2011-01-09 21:07 UTC (permalink / raw)
To: openembedded-devel
[-- Attachment #1: Type: text/plain, Size: 1791 bytes --]
Dear OE folks,
when compiling XBMC for the ARM architecture it hard codes Python 2.5
[1] and a patch in the OE repository changes this to Python 2.6 [2].
I tried to use `python-config` to determine the Python version [3].
ifeq (arm, $(ARCH))
-# Force external python2.5 for now!
-LIBS +=-lpython2.5
+# Force external Python for now!
+LIBS += $(shell python-config --libs)
endif
This fails with the following error though documented in `log.do_compile`.
Traceback (most recent call last):
File "/oe/build/angstrom-dev/sysroots/i686-linux/usr/bin/python-config", line 6, in <module>
from distutils import sysconfig
File "/oe/build/angstrom-dev/sysroots/i686-linux/usr/lib/python2.6/distutils/sysconfig.py", line 22, in <module>
PREFIX = os.path.normpath(sys.prefix).replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") )
Do you know of an easy way to fix this with just adapting `Makefile.in`?
Or is using a separate variable as `PYTHON_LIBS` [4] the only option
besides hard coding and patching?
ifeq (arm, $(ARCH))
# Force external Python for now!
-LIBS += $(shell python-config --libs)
+PYTHON_LIBS ?= $(shell python-config --libs)
+LIBS += $(PYTHON_LIBS)
endif
Thanks,
Paul
[1] https://github.com/xbmc/xbmc/#L470
[2] http://cgit.openembedded.org/cgit.cgi/openembedded/tree/recipes/xbmc/xbmc/0006-Hardcode-python2.6-for-now.patch?id=0cc02ded7bd429208ccb0e0e0aa3e43aec8a4722
[3] http://trac.xbmc.org/ticket/11041 (Please notice the updated patch where `($` is changed to `$(`.)
[4] http://trac.xbmc.org/ticket/11042 (Please notice the updated patch where `($` is changed to `$(`.)
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 205 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: OT: determining in `Makefile.in` the Python version/path 2011-01-09 21:07 OT: determining in `Makefile.in` the Python version/path Paul Menzel @ 2011-01-09 22:17 ` Andreas Oberritter 2011-01-10 10:46 ` Paul Menzel 0 siblings, 1 reply; 3+ messages in thread From: Andreas Oberritter @ 2011-01-09 22:17 UTC (permalink / raw) To: openembedded-devel On 01/09/2011 10:07 PM, Paul Menzel wrote: > I tried to use `python-config` to determine the Python version [3]. > > ifeq (arm, $(ARCH)) > -# Force external python2.5 for now! > -LIBS +=-lpython2.5 > +# Force external Python for now! > +LIBS += $(shell python-config --libs) > endif > > This fails with the following error though documented in `log.do_compile`. > > Traceback (most recent call last): > File "/oe/build/angstrom-dev/sysroots/i686-linux/usr/bin/python-config", line 6, in <module> > from distutils import sysconfig > File "/oe/build/angstrom-dev/sysroots/i686-linux/usr/lib/python2.6/distutils/sysconfig.py", line 22, in <module> > PREFIX = os.path.normpath(sys.prefix).replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") ) > For OE's Python, you need to set some variables in your recipe, e.g.: EXTRA_OECONF = " \ BUILD_SYS=${BUILD_SYS} \ HOST_SYS=${HOST_SYS} \ STAGING_INCDIR=${STAGING_INCDIR} \ STAGING_LIBDIR=${STAGING_LIBDIR} \ " Regards, Andreas ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: OT: determining in `Makefile.in` the Python version/path 2011-01-09 22:17 ` Andreas Oberritter @ 2011-01-10 10:46 ` Paul Menzel 0 siblings, 0 replies; 3+ messages in thread From: Paul Menzel @ 2011-01-10 10:46 UTC (permalink / raw) To: openembedded-devel [-- Attachment #1: Type: text/plain, Size: 3800 bytes --] Am Sonntag, den 09.01.2011, 23:17 +0100 schrieb Andreas Oberritter: > On 01/09/2011 10:07 PM, Paul Menzel wrote: > > I tried to use `python-config` to determine the Python version [3]. > > > > ifeq (arm, $(ARCH)) > > -# Force external python2.5 for now! > > -LIBS +=-lpython2.5 > > +# Force external Python for now! > > +LIBS += $(shell python-config --libs) > > endif > > > > This fails with the following error though documented in `log.do_compile`. > > > > Traceback (most recent call last): > > File "/oe/build/angstrom-dev/sysroots/i686-linux/usr/bin/python-config", line 6, in <module> > > from distutils import sysconfig > > File "/oe/build/angstrom-dev/sysroots/i686-linux/usr/lib/python2.6/distutils/sysconfig.py", line 22, in <module> > > PREFIX = os.path.normpath(sys.prefix).replace( os.getenv("BUILD_SYS"), os.getenv("HOST_SYS") ) > > > > For OE's Python, you need to set some variables in your recipe, e.g.: > > EXTRA_OECONF = " \ > BUILD_SYS=${BUILD_SYS} \ > HOST_SYS=${HOST_SYS} \ > STAGING_INCDIR=${STAGING_INCDIR} \ > STAGING_LIBDIR=${STAGING_LIBDIR} \ > " Andreas, thank you very much. At first it did not work and I got the same error. Then I tried to put it into `EXTRA_OEMAKE`, since the error was during task `compile`. That did not work either and I got the same error again. With a manual test recipe (attached, `git am --scissors`) manually running python-config --libs worked, so I think the problem is, that the environment variables are not passed to the shell(?) opened by `$(shell …)`. Searching for `'BUILD_SYS=${BUILD_SYS}'` through the repository I found that sometimes those variables are exported and tried the following do_configure_prepend() { export BUILD_SYS=${BUILD_SYS} export HOST_SYS=${HOST_SYS} export STAGING_INCDIR=${STAGING_INCDIR} export STAGING_LIBDIR=${STAGING_LIBDIR} } […] do_compile_prepend() { export BUILD_SYS=${BUILD_SYS} export HOST_SYS=${HOST_SYS} export STAGING_INCDIR=${STAGING_INCDIR} export STAGING_LIBDIR=${STAGING_LIBDIR} } which seems to work. Is that the right explanation and is there an easier way to do this? Thanks, Paul 8<-------------------------------------------------------------------->8 From dbf2af72601e5998af0d3cc0f0dc4abcc5d4fa6e Mon Sep 17 00:00:00 2001 From: Paul Menzel <paulepanter@users.sourceforge.net> Date: Mon, 10 Jan 2011 11:00:45 +0100 Subject: [PATCH] test-python-config: add test program for `python-config` http://lists.linuxtogo.org/pipermail/openembedded-devel/2011-January/028563.html Signed-off-by: Paul Menzel <paulepanter@users.sourceforge.net> --- recipes/helloworld/test-python-config_1.0.0.bb | 18 ++++++++++++++++++ 1 files changed, 18 insertions(+), 0 deletions(-) create mode 100644 recipes/helloworld/test-python-config_1.0.0.bb diff --git a/recipes/helloworld/test-python-config_1.0.0.bb b/recipes/helloworld/test-python-config_1.0.0.bb new file mode 100644 index 0000000..89c89e9 --- /dev/null +++ b/recipes/helloworld/test-python-config_1.0.0.bb @@ -0,0 +1,18 @@ +DESCRIPTION = "run `python-config --libs`" +LICENSE = "GPLv3" +PR = "r0" +DEPENDS = "python" + +S = "${WORKDIR}/${P}" + +do_fetch () { + mkdir -p ${WORKDIR}/${P} + cd ${WORKDIR}/${P} +} + +do_compile () { + BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} STAGING_INCDIR=${STAGING_INCDIR} STAGING_LIBDIR=${STAGING_LIBDIR} python-config --libs +} + +do_install () { +} -- 1.7.2.3 [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 205 bytes --] ^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-01-10 10:47 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-01-09 21:07 OT: determining in `Makefile.in` the Python version/path Paul Menzel 2011-01-09 22:17 ` Andreas Oberritter 2011-01-10 10:46 ` Paul Menzel
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.